Google Colab简介

Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究。这款工具现在可以免费使用,但是不是永久免费暂时还不确定。Google Colab最大的好处是给广大的AI开发者提供了免费的GPU使用!GPU型号是Tesla K80!你可以在上面轻松地跑例如:Keras、Tensorflow、Pytorch等框架。

官方教程

新手指引:https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d
常见问题:https://research.google.com/colaboratory/faq.html

官方给出的新手指引当中已经给出了前期配置、常见软件和库的安装等方法。大家凭借官方教程可以基本入门Colab,但如果想更加自如地在Colab上跑通自己的代码,可能还需要更多的学习。

我写的这篇教程结合了官方给的资料和网上其他小伙伴的经验,希望对刚接触Colab的童鞋有所帮助: )(我自己使用Colab的时间其实不长,文中如果有错误的地方还望大家指正~)

基本操作

认识Google Colab

依赖平台:Google Drive

Colab需要从Google Drive(谷歌云盘)进入。为了方便整理,我先在Google Drive中创建了一个新文件夹"Colab"

 
创建新文件夹"Colab"

然后,我们在"Colab"文件夹中新建一个Colab项目,如图所示:

 
新建Colab项目

注意:首次创建Colab项目需要点击“关联更多应用”,添加“Colaboratory”应用。

创建完项目之后我们就可以进入Colab的主界面了。

现在,我们就可以在代码框中输入一些代码。这里注意,如果我们直接输入代码,系统会当作是Python代码执行。例如我们输入:

a = 1
print(a)

运行之后输出框中会打印出"1"。

而如果我想执行系统命令,需要在命令前加感叹号!。例如我们输入:

!ls

执行后输出框中会显示当前目录下的所有文件夹。是不是很像Linux下的命令行操作哈哈!

其实我们在Colab中连接的云端的那台虚拟机正是使用的Ubuntu操作系统,我们可以将自己在Colab中的一切操作看作是在用命令行控制云端的那台Ubuntu虚拟机。你可以用它来直接跑代码,也可以使用一些系统命令(我们后面要安装第三方软件都需要借助一系列的系统命令)。看到这有没有感觉自己瞬间多了一台电脑~

前期配置

1. 修改笔记本环境

我们每新建一个Colab项目,先对笔记本环境进行配置,选择是Python2还是Python3,是否使用GPU。(其中Python2是2.7版本,Python3是3.6版本)

 
笔记本设置

修改完后点击保存。

2. 安装必要的包和软件

在代码段中输入以下代码:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

运行代码,运行中会提示输入验证码,点击程序给出的网址进行验证即可。

3. 挂载Google Drive

其实完成前面的操作我们就可以在Colab中敲写代码或者输入一些系统命令了,但是我们现在连接的虚拟机是和Google Drive脱离的,也就是说我们跑的程序无法使用谷歌云盘里的文件,这就非常受限制了。所以我们一般需要将谷歌云盘看作是虚拟机中的一个硬盘挂载,这样我们就可以使用虚拟机轻松访问谷歌云盘。
挂载Google Drive代码:

!mkdir -p drive
!google-drive-ocamlfuse drive

挂载完后在虚拟机中会多出一个文件夹"drive",我们可以用!ls命令查看。

安装深度学习平台

在官方教程中已经有Keras、Tensorflow、Pytorch的安装方法,我平时使用Pytorch比较多,所以这里只给出Pytorch的安装代码。

!pip install http://download.pytorch.org/whl/cu80/torch-0.3.1-cp36-cp36m-linux_x86_64.whl torchvision

我这里安装的是0.3.1的版本,大家可以根据自己的需要调整版号。

安装完后输入import pytorch没有报错,基本上就是安装成功了。

到此,我们介绍完了Colab中的基本操作,我们现在可以在Colab中跑一些简单的代码了。但这显然还不够,下面我将介绍一些进阶操作以及举例说明如何在Colab中跑自己写好的.py文件。

进阶操作

更改工作目录

在Colab中cd命令是无效的,切换工作目录使用chdir函数。

import os
os.chdir("drive")

执行以上代码,当前工作目录会进入到drive文件夹下。我们再使用!ls命令会发现系统输出的是drive文件夹下的目录。

回到上级目录:os.chdir('../')

安装Java8

有的第三方Python库可能需要依赖Java或是其他软件才能运行,有了前面的介绍,我们就可以在Colab中安装Java8了,其他复杂的软件安装也可以参考Java8的安装步骤进行安装。

0. Colab前期配置(前面已经说了,这里不重复说啦)
1. 添加ppa
!add-apt-repository ppa:webupd8team/java --yes
!apt-get update

注意--yes这个小操作很关键,如果我们不在那句代码中加入后缀--yes,系统会给出这样的信息:

 
 

程序会卡在这个地方,让你输入回车继续安装或者Ctrl-C结束安装。但是Colab中不支持用户在程序运行过程中与命令行进行交互,我们没办法将回车键输给命令行,所以需要提前在代码中就告诉系统我们在后面的选择中选'yes'。

这个小技巧在Colab中会被经常用到。

2. 安装oracle-java-installer
!echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
!apt-get install oracle-java8-installer

和步骤一中同样的道理,第一句代码是为了提前告诉系统我们同意 oracle 的服务条款,否则安装程序会因为无法弹出协议窗口而自动停止。

到这里我们就正式地开始下载并安装Java了,Colab下载各种东西的速度都很快,不用担心网速的问题~

3. 设置系统默认jdk
!update-java-alternatives -s java-8-oracle
4. 测试Java是否安装成功
!java -version
!javac -version

系统正确输出Java版本即表示安装成功。

5. 查看Java的安装路径

Java是安装完了,但是我们有时候还需要在代码中声明Java的安装路径才能调用Java。如何找到Java的安装路径呢?大家可以参考下面这篇文章:
https://www.cnblogs.com/oxspirt/p/6294754.html

例如我查找到的安装路径是:/usr/lib/jvm/java-8-oracle/jre/bin/java

运行自己的代码

好了,各种准备工作都做好了,我们如何在Colab上直接运行自己写好的代码呢?其实很简单,就跟在自己电脑上一样,使用命令!python XXX.py就可以了!详细步骤如下:

1. 将.py文件和其它必要的文件上传到Google Drive

上传速度很快,不用担心网速问题~

2. 将工作目录切换到.py文件所在目录
import os
os.chdir('drive/Colab/Your project folder')

不放心的话切换完之后用!ls命令看一下是不是到了指定目录下。

3. 运行代码

!python XXX.py

4. 注意事项
  • Linux系统下文件路径使用'/'而不是'\'

  • 如果需要记得在代码里声明第三方软件或库的路径,例如我在使用Stanford Parser工具的时候,声明模型和Java的路径:

# 添加stanford环境变量  (content是系统根目录下的一个文件夹)
os.environ['STANFORD_PARSER'] = '/content/drive/Stanford_NLP/jars/stanford-parser.jar'
os.environ['STANFORD_MODELS'] = '/content/drive/Stanford_NLP/jars/stanford-parser-3.9.1-models.jar'
# 添加Java环境变量
os.environ['JAVAHOME'] = "/usr/lib/jvm/java-8-oracle/jre/bin/java"

总结

  1. 可以把Colab看成是一台带有GPU的Ubuntu虚拟机,只不过我们只能用命令行的方式操作它。你可以选择执行系统命令,亦或是直接编写运行python代码。

  2. 挂载完Google Drive,会在虚拟机里生成一个drive文件夹,直接将Google Drive当成是一块硬盘即可。访问drive文件夹里的文件,就是在访问你的Google Drive里的文件。

  3. Colab最多连续使用12小时,超过时间系统会强制掐断正在运行的程序并收回占用的虚拟机。(好像再次连接到虚拟机后,虚拟机是被清空的状态,需要重新配置和安装库等等)

好了,Google Colab的使用方法就先介绍到这里了,笔者也是刚接触不久,发现国内介绍Colab的博文还是少了点,所以写下了这篇教程与大家分享。文中若有问题之处,还请大家多多包涵,可以在评论区指出我的错误,互相学习: )

参考资料

官方教程
官方FAQ
https://www.cnblogs.com/smiler/p/6939913.html
https://www.cnblogs.com/oxspirt/p/6294754.html

作者:Caria_W
链接:https://www.jianshu.com/p/000d2a9d36a0
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Google Colab——用谷歌免费GPU跑你的深度学习代码的更多相关文章

  1. 如何免费使用GPU跑深度学习代码

    从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综 ...

  2. supervessel-免费云镜像︱GPU加速的Caffe深度学习开发环境

    开发环境介绍 在SuperVessel云上,我们为大家免费提供当前火热的caffe深度学习开发环境.SuperVessel的Caffe有如下优点: 1) 免去了繁琐的Caffe环境的安装配置,即申请即 ...

  3. TVM 优化 ARM GPU 上的移动深度学习

    TVM 优化 ARM GPU 上的移动深度学习 随着深度学习的巨大成功,将深度神经网络部署到移动设备的需求正在迅速增长.与桌面平台上所做的类似,在移动设备中使用 GPU 既有利于推理速度,也有利于能源 ...

  4. TVM在ARM GPU上优化移动深度学习

    TVM在ARM GPU上优化移动深度学习 随着深度学习的巨大成功,将深度神经网络部署到移动设备的需求正在迅速增长.与在台式机平台上所做的类似,在移动设备中使用GPU可以提高推理速度和能源效率.但是,大 ...

  5. win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)

    在计算机视觉和机器学习方向有一个特别好用但是比较低调的库,也就是dlib,与opencv相比其包含了很多最新的算法,尤其是深度学习方面的,因此很有必要学习一下.恰好最近换了一台笔记本,内含一块GTX1 ...

  6. 使用colab运行深度学习gpu应用(Mask R-CNN)实践

    1,目的 Google Colaboratory(https://colab.research.google.com)是谷歌开放的一款研究工具,主要用于机器学习的开发和研究.这款工具现在可以免费使用, ...

  7. 免费深度学习GPU,Google Yes!

    深度学习越加火热,但是,很多实验室并没有配套的硬件设备,让贫穷的学生党头大 经过网上大量的搜罗,我整理了适合学生党的深度学习解决方案.利用Colab + Kaggle两大免费的GPU环境,让深度学习变 ...

  8. 想要学深度学习但是没有GPU?我帮你找了一些不错的平台

    本文始发于个人公众号:TechFlow,原创不易,求个关注 上次给大家推荐了免费的spark集群之后,就有很多小伙伴来问我有没有好的云GPU平台推荐.我一直没给大家推荐,主要原因是我常年使用Mac,对 ...

  9. 如何挑选深度学习 GPU?

    如何挑选深度学习 GPU? 深度学习是一个对计算有着大量需求的领域,从一定程度上来说,GPU的选择将从根本上决定深度学习的体验.因此,选择购买合适的GPU是一项非常重要的决策.那么2020年,如何选择 ...

随机推荐

  1. CAS小总结

      11                 if (log.isTraceEnabled()) { 12                     log.trace ("Logout requ ...

  2. Codeforces Round #309 (Div. 2) A. Kyoya and Photobooks【*组合数学】

    A. Kyoya and Photobooks time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  3. 【JZOJ3854】【NOIP2014八校联考第2场第2试9.28】分组(group)

    MEi Bsny所在的精灵社区有n个居民,每个居民有一定的地位和年龄,ri表示第i个人的地位,ai表示第i个人的年龄. 最近社区里要举行活动,要求几个人分成一个小组,小组中必须要有一个队长,要成为队长 ...

  4. PHP实现redis限制单ip、单用户的访问次数功能

    本文实例讲述了PHP实现redis限制单ip.单用户的访问次数功能.分享给大家供大家参考,具体如下: 有时候我们需要限制一个api或页面访问的频率,例如单ip或单用户一分钟之内只能访问多少次 类似于这 ...

  5. 开发一个登录接口(Mysql)

    分享一段代码,开发了一个登录接口: 使用Python开发,需要安装flask模块,使用pip intall flask 安装即可,这里使用的数据库是Mysql,所以导入了pymysql模块,代码如下: ...

  6. 使用R拟合分布

    使用R拟合分布 几个常用的概率函数介绍 这里,参考R语言实战,以及[Fitting Distribution with R]的附录. 一.认识各种分布的形态 1.1 连续型随机变量的分布 首先,我们来 ...

  7. 【JZOJ4860】【NOIP2016提高A组集训第7场11.4】分解数

    题目描述 Dpstr学习了动态规划的技巧以后,对数的分解问题十分感兴趣. Dpstr用此过程将一个正整数x分解成若干个数的乘积:一开始令集合A中只有一个元素x,每次分解时从A中取一个元素a并找出两个大 ...

  8. NEFU 118 n!后面有多少个0【数论】

    http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=118 求n!后面有多少个0(1<=n<=1000000000) ...

  9. 2019-10-18-dotnet-文件读写务必注意事项

    title author date CreateTime categories dotnet 文件读写务必注意事项 lindexi 2019-10-18 08:42:53 +0800 2019-10- ...

  10. MUI - 为textarea添加语音输入和清除的功能

    为textarea添加语音输入和清除的功能 mui支持input输入框语音输入和清除的功能,只需要添加相关css类即可. http://www.cnblogs.com/phillyx/ 代码如下 &l ...