作者:凌逆战
从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综合性的,GPU是专门用来做图像渲染的,这我们大家都知道,做图像矩阵的计算GPU更加在行,应该我们一般把深度学习程序让GPU来计算,事实也证明GPU的计算速度比CPU块,但是(但是前面的话都是废话)我们穷,买不起呀,一块1080Ti现在也要3500左右,2080Ti要9000左右,具体价格还要看显存大小,因此本文给大家带来了福利——Google免费的GPU Colaboratory。
Google Colab简介
Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发研究,这款工具现在可以免费使用,但是不是永久免费暂时还不确定,Google Colab最大的好处是给广大开发AI者提供免费的GPU使用!GPU型号是Tesla K80,你可以在上面轻松地跑例如:Keras、Tensorflow、Pytorch等框架。
Colabortory是一个jupyter notebook环境,它支持python2和python3,还包括TPU和GPU加速,该软件与Google云盘硬盘集成,用户可以轻松共享项目或将其他共享项目复制到自己的帐户中。
Colaboratory使用步骤
1、登录谷歌云盘
https://drive.google.com/drive/my-drive(没有账号的可以注册一个)
(1)、右键新建文件夹,作为我们的项目文件夹。
2、创建Colab文件
右键在更多里面选择google Colaboratry(如果没有Colaboratory需要在关联更多应用里面关联Colaboratory)
3、开始使用
这时候会直接跳转到Colaboratory界面,这个界面很像Jupyter Notebook,Jupyter的命令在Colaboratory一样适用,值得一提的是,Colab不仅可以运行Python代码,只要在命令前面加一个" !",这条命令就变成了linux命令,比如我们可以" ! ls"查看文件夹文件,还可以!pip安装库。以及运行py程序!python2 temp.py
可以写一段代码进行测试
更改工作目录,在Colab中cd命令是无效的,切换工作目录使用chdir函数
!pwd # 用 pwd 命令显示工作路径
# /content
!ls # 查看的是 content 文件夹下有哪些文件
# sample_data
!ls "drive/My Drive"
# TensorFlow (这就是我们之前创建的那个文件夹)
# 更改工作目录
import os
os.chdir("/content/drive/My Drive/TensorFlow")
os.getcwd
# '/content/drive/My Drive/TensorFlow'
重新启动Colab命令:!kill -9 -1
(3)、选择配置环境
我们大家肯定会疑虑,上述方法跑的那段程序是不是用GPU跑的呢?不是,想要用GPU跑程序我们还需要配置环境,
点击工具栏“修改”,选择笔记本设置
在运行时类型我们可以选择Python 2或Python 3,硬件加速器我们可以选择GPU或者TPU(后面会讲到),或者None什么都不用。
加载数据
从本地加载数据
从本地上传数据
files.upload
会返回已上传文件的字典。此字典的键为文件名,值为已上传的数据。
from google.colab import files
uploaded = files.upload
for fn in uploaded.keys:
print('用户上传的文件 "{name}" 有 {length} bytes'.format(
name=fn, length=len(uploaded[fn])))
我们运行该段程序之后,就会让我们选择本地文件,点击上传后,该文件就能被读取了
将文件下载到本地
from google.colab import files
files.download('./example.txt') # 下载文件
从谷歌云盘加载数据
使用授权代码在运行时装载 Google 云端硬盘
from google.colab import drive
drive.mount('/content/gdrive')
在Colab中运行上述代码,会出现一段链接,点击链接,复制链接中的密钥,输入到Colab中就可以成功把Colab与谷歌云盘相连接,连接后进行路径切换,就可以直接读取谷歌云盘数据了。
向Google Colab添加表单
为了不每次都在代码中更改超参数,您可以简单地将表单添加到Google Colab。
点击之后就会出现左右两个框,我们在左框中输入
# @title 字符串
text = 'value' #@param {type:"string"}
dropdown = '1st option' #@param ["1st option