(新手向)从零开始使用Colab进行机器/深度学习详细教程

(新手向)从零开始使用Colab进行机器/深度学习详细教程

  • 什么是Colab
  • 如何使用Colab
  • Colab的几种使用方式
    • 像Jupyter Notebook一样使用
    • 如何使用GPU加速
    • 如何使用Colab跑我们的程序

疫情期间只能在家实习,用笔记本做简单的机器学习还能勉强凑合,深度学习随便训练个模型要跑几天几夜。不过如果我们使用Google Colab的GPU资源,什么电脑都可以玩深度学习啦!

什么是Colab

引用官方介绍:

Colaboratory 是一个免费的 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行。
借助 Colaboratory,可以编写和执行代码、保存和共享分析结果,以及利用强大的计算资源,所有这些都可通过浏览器免费使用。

Colab就是一个服务器,我们可以申请他的资源来使用。选择用colab来做深度学习的最大优点就是它强大的GPU/TPU资源,对于深度学习的网络训练,并行计算用gpu速度可比cpu快得多。

你可以在colab里通过以下命令来查看colab所能提供给我们的GPU配置:

! /opt/bin/nvidia-smi

(新手向)从零开始使用Colab进行机器/深度学习详细教程_第1张图片
这是我们所能免费使用的GPU资源,如果不能满足你的要求的的话可以购买colab pro或者去淘宝租服务器。

如何使用Colab

毕竟是谷歌的产品,首先你需要你一个谷歌账号,还要能科学上网。
我们从最简单的开始,第一,如何创建一个Colab文件。
在你的谷歌云文档里单机右键创建,如图:
(新手向)从零开始使用Colab进行机器/深度学习详细教程_第2张图片
小伙伴们第一次使用是找不到的,在 更多->关联更多应用 里搜索一下添加一下就好了。
现在创建好了一个文件,下面我讲一下它的几种使用方式。

Colab的几种使用方式

像Jupyter Notebook一样使用

对于我们来说Anaconda的Jupyter Notebook更为熟悉,它可以方便的添加代码和注释,并能及时的显示运行结果,非常适用于教学展示。这里你可以像notebook一样使用colab,甚至他们的文件格式都是一样的,你的notebook文件可以直接传到谷歌云上并用colab打开。
下面举个例子:
(新手向)从零开始使用Colab进行机器/深度学习详细教程_第3张图片
可以看到这里的使用和notebook是一样的。在熟悉colab的使用以后简单的计算我就很喜欢用colab来算,毕竟老电脑开个啥软件都慢,不如薅谷歌点羊毛。

如何使用GPU加速

进行深度学习使用GPU的话,我们必须先调好设置。如图:
(新手向)从零开始使用Colab进行机器/深度学习详细教程_第4张图片
(新手向)从零开始使用Colab进行机器/深度学习详细教程_第5张图片
在 执行代码程序->更改运行时类型->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个小时,不过这也不是个确定的值,会随着服务器的使用情况随时变化。

如何使用Colab跑我们的程序

我们自己写的程序或者从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文件再调用。
(新手向)从零开始使用Colab进行机器/深度学习详细教程_第6张图片
直接在文件中下载为py文件并传到你的谷歌云盘上就好了。

你可能感兴趣的:(深度学习,github,tensorflow)