引用官方介绍:
Colaboratory 是一个免费的 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行。
借助 Colaboratory,可以编写和执行代码、保存和共享分析结果,以及利用强大的计算资源,所有这些都可通过浏览器免费使用。
Colab就是一个服务器,我们可以申请他的资源来使用。选择用colab来做深度学习的最大优点就是它强大的GPU/TPU资源,对于深度学习的网络训练,并行计算用gpu速度可比cpu快得多。
你可以在colab里通过以下命令来查看colab所能提供给我们的GPU配置:
! /opt/bin/nvidia-smi
这是我们所能免费使用的GPU资源,如果不能满足你的要求的的话可以购买colab pro或者去淘宝租服务器。
毕竟是谷歌的产品,首先你需要你一个谷歌账号,还要能科学上网。
我们从最简单的开始,第一,如何创建一个Colab文件。
在你的谷歌云文档里单机右键创建,如图:
小伙伴们第一次使用是找不到的,在 更多->关联更多应用 里搜索一下添加一下就好了。
现在创建好了一个文件,下面我讲一下它的几种使用方式。
对于我们来说Anaconda的Jupyter Notebook更为熟悉,它可以方便的添加代码和注释,并能及时的显示运行结果,非常适用于教学展示。这里你可以像notebook一样使用colab,甚至他们的文件格式都是一样的,你的notebook文件可以直接传到谷歌云上并用colab打开。
下面举个例子:
可以看到这里的使用和notebook是一样的。在熟悉colab的使用以后简单的计算我就很喜欢用colab来算,毕竟老电脑开个啥软件都慢,不如薅谷歌点羊毛。
进行深度学习使用GPU的话,我们必须先调好设置。如图:
在 执行代码程序->更改运行时类型->GPU 这样才能够使用GPU资源来进行我们的深度学习。
在换成GPU资源以后,你可以用以下代码测试你是否真正连接上了GPU资源:
import tensorflow as tf
device_name = tf.test.gpu_device_name()
if device_name != '/device:GPU:0':
raise SystemError('GPU device not found')
print('Found GPU at: {}'.format(device_name))
若输出为Found GPU at: /device:GPU:0
则证明你连接成功。
这里如果你用不到gpu加速的话最好不要选,因为每个账号能每天能用GPU加速的时间是有限的,我有一段时间经常用GPU,结果colab到十二个小时左右就给我自动断开了,再想连接时就会提醒你什么没有空余的GPU资源,这种情况下要么等到第二天再使用GPU或者新建一个谷歌账号接着跑。
无论是用GPU加速还是不用,运行程序时长是有上限的,一般为24个小时,不过这也不是个确定的值,会随着服务器的使用情况随时变化。
我们自己写的程序或者从GitHub上拷贝的程序一般是怎么运行的呢?
Linux用户就直接敲命令就可以了,Colab也是一样的写。
挂载Google云盘
这是运行我们程序的第一步,因为Colab的运行原理实际上就是给你分配一台远程的带GPU的主机,所以它的原始路径不是你的谷歌云盘(也就是你的代码文件)所在的路径。所以第一步我们先要把谷歌云盘挂载带到那台远程主机上:
from google.colab import drive
drive.mount('/content/gdrive')
运行之后点击链接,然后复制一下code输入就行了。
连接上云盘以后,其实其他的操作和在Linux里就差别不大了。
执行命令
colab与notebook所不同的是,其代码框里不仅仅能执行代码,也能执行命令。
对于命令语句,我们需要在之前加上`!
比如说一些常用的命令:
import os
os.chdir("/content/gdrive/My Drive/3dunet/3DUnetCNN-master")
跳到你谷歌云盘的某个地址
ls '/content/gdrive/My Drive/3dunet/3DUnetCNN-master'
查看路径下的内容
%cd brats
进入brasts文件夹,注意这里cd命令要用%而不是!
!pip install nipype
或
! pip install git+https://github.com/qubvel/segmentation_models
安装所需的库
!pip install tensorflow==1.15.0
安装某个版本的库。这里需要注意一点,我们在GitHub看到的许多项目都是一段时间之前写好的,所以用的tensorflow版本可能会与colab本身自带的版本不一样。我们可以通过以下命令来查看当前colab的tensorflow版本
import tensorflow as tf
tf.__version__
我目前显示的是'2.2.0'
,而项目可能试用tensorflow一点几版本写的,这时候就需要通过上面的命令来更换版本,在更换完版本之后,程序往往需要重新运行。
还有一点,目前1.15.0版本的tensorflow是支持GPU运行的,好多更低的版本并不支持GPU,所以如果你降低到了比如1.5.0版本,是无法使用GPU的。
! python train.py
执行train.py文件
其实这些都跟我们的linux下操作是一样的,只不过现在放到了谷歌云盘里来执行。
项目运行
怎么运行在github上别人的项目呢?
先要把别人的项目和所需的数据集传到自己的谷歌云盘里之后,再用colab执行。
注意谷歌云盘的免费空间只有15G,如果你的数据集很大,要小心在执行的过程中可能产生一些图片从而导致空间过载,这样会报错的。可以买一个会员,十块钱不到100G,我感觉还是比百度云那种限速的好用多了.
1.挂载谷歌云,刚才讲过了
from google.colab import drive
drive.mount('/content/gdrive')
2.转到要处理的项目地址
import os
os.chdir("/content/gdrive/My Drive/3dclassification/3DUnetCNN-master")
3.安装好所需要的库
用pip
命令一个一个安装也行,不过大部分项目都有requirements.txt文件,你可以直接
! pip install -r requirements.txt
一次性安装好所有要求的库。
4.执行项目程序
! python train.py
训练网络
! python evaluate.py
评估表现
项目编写
colab不太适合大型程序的编写,毕竟都是notebook文件。但notebook的好处就是直观,方便我们观察输出与调试,如果要写项目的话,都写在一个文件中的简单项目还好说,但如果你想调用其他文件中的函数,要先把notebook文件(.ipynb)转为py文件再调用。
直接在文件中下载为py文件并传到你的谷歌云盘上就好了。