想必每个学习深度学习的小伙伴,特别是新手小白,总要为找到以及调试一个适合的gpu云主机煞费苦心。不知道大家有没有经历过,用自己的显卡计算时,每出一个结果,就能听到显卡”兹”的一声,仿佛在向我哀嚎。就在这时候,floydhub闯进了我的世界,是他,是他,就是他!
为什么我如此兴奋?因为这正是我这种懒人喜欢的东西。没错!不用配置环境,不用选区域,不用选系统,不用选套餐,不用申请优惠码,不用绑信用卡,通通不用!
其实深度学习最好,最经济的训练方式就是在云端,找个GPU的机器,安装搭建环境进行训练,这也是我之前做项目和使用的方式,但对于深度学习的研究者,开发者来说,不太希望花费太多的时间在驱动安装,环境配置,包依赖处理这些琐碎的方面,如果有一两条命令就可以在云端开始训练,那就可以将大部分精力放在模型本身的调整上。
最近尝试了一下FloydHub,这是一个由Heroku提供的Deep Learning的PAAS平台,可以让你使用简单的命令就在本机提交训练任务,支持Caffe,Tensoflow,Torch等等,CNTK支持还在开发中,可以让你提交Jupyter,也可以直接提交python脚本,主页和介绍如下:
https://www.floydhub.com/
对于新用户,有免费的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倍:
从整个过程来看,使用Floyd进行深度学习训练不需要自己准备和搭建环境,还是非常方便的,而且也提供了很多例子,共初学者快速的上手,比如下面这个风格迁移的例子,大家可以自己尝试:
下面是floydhub的贴心特点,我分条说一下:
目前唯一发现的问题时,感觉计算速度跟我的显卡差不多,不算太快。但由于没有用过其他云服务,不知道是否是显卡性能有明显差距。Whatever,我又可以在mac上开心的敲代码啦!而且,用户体验对一个学习者来说,简直完美。
∞∞∞∞∞