如果你曾经做过做过深度学习的模型,并试图将他在本机上训练一下,因为你觉得你的笔记本性能还可以,于是你开始train你的模型,首先你看到loss下降很慢,每个batch需要花费8.4秒左右的样子:
然后你的CPU开始狂转,风扇全功率运行,风声大作,坚持了几分钟实在受不了了,你果断的关闭了进程,不仅仅是速度比较慢,你可能也和我一样,真怕电脑给烧掉了,然后,整个世界,清静了:)
其实深度学习最好,最经济的训练方式就是在云端,找个GPU的机器,安装搭建环境进行训练,这也是我之前做项目和使用的方式,但对于深度学习的研究者,开发者来说,不太希望花费太多的时间在驱动安装,环境配置,包依赖处理这些琐碎的方面,如果有一两条命令就可以在云端开始训练,那就可以将大部分精力放在模型本身的调整上。
最近尝试了一下FloydHub,这是一个由Heroku提供的Deep Learning的PAAS平台,可以让你使用简单的命令就在本机提交训练任务,支持Caffe,Tensoflow,Torch等等,CNTK支持还在开发中,可以让你提交Jupyter,也可以直接提交python脚本,主页和介绍如下:
对于新用户,有免费的2个小时的GPU训练时间,当然后续你可以购买其他计划。下面的部分给大家快速介绍与喜爱如何使用Floyd进行深度学习训练。
- 第一步当然是注册了,需要的信息非常简单,输入完成后点击"Sign up",然后进入主界面,需要你验证一下你的邮箱,验证完成后后就可以得到你的token:
- 然后需要在你的本机,或者开发及安装Floyd命令行工具,该工具依赖于Python,假定你已经安装好了Python,推荐使用Anconda分发版,在本机安装floyd-cli,使用pip命令安装即可:
$ pip install -U floyd-cli
- 使用命令行登陆Floyd,他会直接跳转到FloydHub的登录页面,让你登陆,其实就是获取CLI的认证token,拷贝token,并粘贴到命令行,完成登陆认证:
$ floyd login
- 进入到FloydHub的页面,在你开始训练你的项目之前,你首先需要创建一个项目,我在次创建的项目是RNN的项目myrnnproj:
- 进入到你的项目目录,初始化你的项目:
$ floyd init myrnnproj
- 在项目初始化完毕的时候,那么我们就可以在远端的平台上train这个项目了,floyd支持多个不同的深度学习框架,多个版本,另外也支持CPU和GPU,在本例中我使用Tensorflow,而且最新版本1.3训练,指定参数如下并运行:
$floyd run --mode jupyter --gpu --env tensorflow-1.3
可以看到Floyd会自动上传你本地的Jupyter代码,自动初始化环境,然后分配给你一个URL,你就可以访问你的notebook了,需要注意的是,从这个时候开始,只要你的notebook开着,Floyd就会计费,你也可以到web页面上查看当前运行的job和job
- 按照Floyd提供的URL,打开我的Jupyter notebook,运行我的training,每个batch大约只需要0.3秒,比我本机快将近30倍:
8 . 从整个过程来看,使用Floyd进行深度学习训练不需要自己准备和搭建环境,还是非常方便的,而且也提供了很多例子,共初学者快速的上手,比如下面这个风格迁移的例子,大家可以自己尝试: