Google AI工具Colaboratory的使用方法

Colaboratory介绍

Colaboratory是Google的一个研究项目,旨在提供开发者一个云端训练神经网络的工具。它是Jupyter一个笔记本环境,不用做任何配置,完全运行在云端。Colaboratory存储在Google Drive中,可以进行共享。Colaboratory向开发者提供了免费的Tesla K80 GPU使用。

Colaboratory的使用方法

可以直接访问Colaboratory的网站其中包含了一些demo,网站内容如下:

Colaboratory的欢迎页面
我们可以添加代码段,在代码段中可以运行相应的Python程序,如下所示:
一个简单的TensorFlow程序
上半部分为代码说明,中间部分为代码段,下半部分为输出结果。可以看出在Colaboratory中编写代码是非常方便简介的。

另一种使用Colaboratory的方法是直接在Google Drive中创建Colaboratory文件,如下图所示:
在Google Drive中直接创建Colaboratory文件

笔记本的设置

目前Colaboratory中的笔记本支持Python3和Python2,并且提供了GPU或者TPU处理器加速训练神经网络。

笔记本设置
硬件加速器中的TPU是Google为深度学习而开发的处理器,命名为“Tensor Processing Unit”(TPU),因为它能加速其第二代人工智能系统TensorFlow的运行,而且效率也大大超过GPU——Google的深层神经网络就是由引擎驱动的。
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

点击输出结果中的连接,授权相应的操作,最后得到验证码填入下框中。
最后一步,挂载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

训练过程如下:
模型在Colaboratory中的训练过程

输入以下命令进行模型测试:

!python3 drive/FaceRank/test.py
模型在测试集上的准确率

从测试结果可以看出模型在测试集上的表现并不是很好准确率,这是由于我把FaceRank作为10分类问题去训练(比如一张非常漂亮的女性照片,标签10分,但是模型预测给了9分所以在测试的时候为不正确的情况)因为每一张脸之间特征并不是很明显,模型在做预测的时候会出现一些偏差,这样的话会导致在测试集上的准确率降低。网上有很多博客使用的是ResNet50神经模型训练,将FaceRank做一个逻辑回归得出具体预测值而不是进行简单的分类问题。具体实现请参考这篇博客

最后,Colaboratory作为一个提供免费GPU训练神经网络的AI工具,简直就是很多人学习AI的福利,Google真是一家伟大的科技公司!

本文提到的FaceRank程序代码下载地址

推荐阅读更多精彩内容

  • 文章主要分为:一、深度学习概念;二、国内外研究现状;三、深度学习模型结构;四、深度学习训练算法;五、深度学习的优点...
    艾剪疏阅读 11,435评论 0 50
  • 栈 1. 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被...
    IT程序员阅读 2,748评论 0 6
  • 女子, 再缺啥, 也不能缺笑容…… 任何时候, 别忘记给自己一个微笑! 想念一座城, 想念一个人, 任它走罢, 愿...
    爱茶匠红豆阅读 26评论 0 1
  • 今天工厂有客人过来,在昨天我们领导在办公室就说了,明天娇娇去接客人吧,你会沟通一点,领导说油费报销……我便立马回复...
    相信就会有阅读 38评论 0 0
  • 一分钟打动天下超级创演第1天主题:《目标》 时间:4月17日 讲者:18月慧 尊敬的田华老师,亲爱的班委,...
    陈月慧阅读 125评论 1 1