一、前言

现在你可以开发Deep Learning Applications在Google Colaboratory,它自带免费的Tesla K80 GPU。重点是免费、免费!(国内可能需要tz) 

这个GPU好像不便宜,amazon上1769刀.

深度学习共享gpu内存什么意思 共享gpu内存怎么用_深度学习共享gpu内存什么意思

 

二、什么是Google Colab?

  • Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果。它是一个 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行。
  • Colaboratory 笔记本存储在 Google 云端硬盘中,并且可以共享,就如同您使用 Google 文档或表格一样。Colaboratory 可免费使用。
  • 利用Colaboratory ,可以方便的使用Keras,TensorFlow,PyTorch,OpenCV等框架进行深度学习应用的开发。

与其它云服务相比,最重要的特点是Colab提供GPU并完全免费.详细介绍可见faq page.

三、开始使用

3.1在谷歌云盘上创建文件夹

当登录账号进入谷歌云盘时,系统会给予15G免费空间大小。由于Colab需要依靠谷歌云盘,故需要在云盘上新建一个文件夹。

比如,我建立一个名为app的文件夹:

深度学习共享gpu内存什么意思 共享gpu内存怎么用_Google_02

 

 

深度学习共享gpu内存什么意思 共享gpu内存怎么用_深度学习共享gpu内存什么意思_03

3.2创建一个新的Colab Notebook

在文件夹内的空白处右键 -> 更多 -> Colaboratory

深度学习共享gpu内存什么意思 共享gpu内存怎么用_深度学习共享gpu内存什么意思_04

 

 点击文件名可以重命名文件:

深度学习共享gpu内存什么意思 共享gpu内存怎么用_Google_05

 

 3.3 设置免费的GPU

它是很容易更换默认的硬件(None,GPU,TPU),通过 修改->笔记本设置或者代码执行程序->更改运行时类型来选择GPU,作为硬件加速.

深度学习共享gpu内存什么意思 共享gpu内存怎么用_深度学习共享gpu内存什么意思_06

——运行基本的Python代码

创建完之后,会自动生成一个jupyter笔记本,就可以直接在这里面编写和运行代码了.

我将运行一些基本的数据类型代码,来自于Python Numpy Tutorial.

深度学习共享gpu内存什么意思 共享gpu内存怎么用_人工智能_07

 3.5授权与安装

首先运行下面的代码来安装必要的库和授权.

from google.colab import drive
drive.mount('/content/drive/')

当你运行上面的代码(挂载云端硬盘),应该会看到如下的结果:

深度学习共享gpu内存什么意思 共享gpu内存怎么用_开发工具_08

点击链接,复制验证码,粘贴到输入框.在完成授权过程之后,你应该会看到这样:

深度学习共享gpu内存什么意思 共享gpu内存怎么用_开发工具_09

现在,你可以使用如下命令进入Google Drive:

!ls "/content/drive/My Drive/"

其实进一步查看,发现这是一个linux虚拟机:

!cd / !ls

深度学习共享gpu内存什么意思 共享gpu内存怎么用_深度学习共享gpu内存什么意思_10

 

3.6运行.py代码

安装Keras

!pip install -q keras

上传minst_cnn.py

深度学习共享gpu内存什么意思 共享gpu内存怎么用_Google_11

 

MINST_dataset的一个简单的卷积神经网络:

!python3 "/content/drive/My Drive/app/mnist_cnn.py"

深度学习共享gpu内存什么意思 共享gpu内存怎么用_python_12

深度学习共享gpu内存什么意思 共享gpu内存怎么用_python_13

正如你看见的,每个epoch仅仅需要8s.

据某位大佬的博客所说:

深度学习共享gpu内存什么意思 共享gpu内存怎么用_Google_14

每个率每个Epoch大概需要130s+完成

深度学习共享gpu内存什么意思 共享gpu内存怎么用_python_15

四、相关命令

(1)查看是否使用GPU

import tensorflow as tf
import tensorflow as tf

(2)在使用哪个GPU

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

(3)RAM大小

!cat /proc/meminfo