Colaboratory介绍
Colaboratory是Google的一个研究项目,旨在提供开发者一个云端训练神经网络的工具。它是Jupyter一个笔记本环境,不用做任何配置,完全运行在云端。Colaboratory存储在Google Drive中,可以进行共享。Colaboratory向开发者提供了免费的Tesla K80 GPU使用。
Colaboratory的使用方法
可以直接访问Colaboratory的网站其中包含了一些demo,网站内容如下:
笔记本的设置
目前Colaboratory中的笔记本支持Python3和Python2,并且提供了GPU或者TPU处理器加速训练神经网络。
Colaboratory自带了TensorFlow框架如果想要下载其它的深度学习框架或者工具包请参考这个网页。
连接Google Drive执行存储在云盘中的程序
首先注册一个Google Drive账号,注册成功后将获得15G的云存储空间,我们将需要训练的源程序文件和数据集上传到Google Drive上,然后在新建一个Colaboratory文件,在目录下就会出现文件名为Untitled0.ipynb的文件。这是一个记事本,在里面新添加一个代码段,将下面代码填入其中运行:
!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}
输出结果为:点击输出结果中的连接,授权相应的操作,最后得到验证码填入下框中。
最后一步,挂载Google Drive,添加一个代码段,将以下代码填入段中执行:
!mkdir -p drive
!google-drive-ocamlfuse drive
然后再输入以下代码便可以看到自己云盘中存储的所有文件夹,这样我们就可以很方便的运行云盘中的Python程序了。最近在做一个FaceRank的研究,使用的是华南理工大学公开的SCUT-FBP5500数据集(下载地址),数据集中包含了(2000亚洲女性,2000张亚洲男性,750张高加索女性,750张高加索男性的面部照片 )并且由60个人给这些图片打分,最后得到每一张图片对应的分数。现在需要做的是利用卷积神经网络训练这些图片对新的面部得出预测分数。神经网络采用的是LeNet-5模型。
将原始数据集中以4:1的比例划分训练集和测试集,原始数据集中的得分为1-5,我将得分扩大为1-10分,然后对原始数据进行一些处理,利用face_recognition库截取他们的面部,重新设置面部大小为64*64的图片,最后将处理后的喂入神经网络中训练并将训练好的模型保存下来用于测试。
现在,将编写好的train.py和test.py文件以及处理后的数据集上传到Google Drive上,我们在代码段中输入以下命令进行训练:
! python3 drive/FaceRank/train.py
训练过程如下:输入以下命令进行模型测试:
!python3 drive/FaceRank/test.py
从测试结果可以看出模型在测试集上的表现并不是很好准确率,这是由于我把FaceRank作为10分类问题去训练(比如一张非常漂亮的女性照片,标签10分,但是模型预测给了9分所以在测试的时候为不正确的情况)因为每一张脸之间特征并不是很明显,模型在做预测的时候会出现一些偏差,这样的话会导致在测试集上的准确率降低。网上有很多博客使用的是ResNet50神经模型训练,将FaceRank做一个逻辑回归得出具体预测值而不是进行简单的分类问题。具体实现请参考这篇博客
最后,Colaboratory作为一个提供免费GPU训练神经网络的AI工具,简直就是很多人学习AI的福利,Google真是一家伟大的科技公司!