查看原文
其他

你的免费GPU计算平台-Floyd使用教程(下) | 集智AI学园

2017-07-05 集智小仙女 集智AI学园

集智AI学园原创

作者:集智小仙女

编辑:Swarma Hannah

导读


本文是文章《吐血推荐:超级好用的深度学习云平台Floyd 》的下篇。我们在上篇文章中已经基本介绍了Floyd,并详细讲解了在Floyd平台上运行Jupyter Notebook计算实例的方法。虽然Notebook很方便,但是我们仍有很多的模型代码是脱离Jupyter Notebook进行训练的,有时候还需要在线验证模型的训练效果。这时候我们应该怎么操作?本篇文章就以实例操作的方式,为你讲解在Floyd上使用命令行训练一个模型的方法,以及如何在线验证训练的模型。


实验:

使用Floyd训练

一个图片风格转换模型

本次我们实验用的是Floyd官方提供的示例项目: Fast Style Transfer, 官方原址:

http://docs.floydhub.com/guides/style_transfer/

首先将项目clone下来,并进入目录,初始化项目:

1、初始化项目

$ git clone https://github.com/floydhub/fast-style-transfer 

$ cd fast-style-transfer 

我们在【上篇】中已经介绍过如何登陆Floyd,所以现在直接初始化项目:

$ floyd init fast-style-transfer 


Project "fast-style-transfer" initialized in current directory

下面我们就要开始训练模型了。在这之前,我们先谈谈训练数据集的问题。

在将要训练的模型中,我们会用到预训练的模型“imagenet-vgg-verydeep-19“以及训练图片数据集。这个数据集Floyd已经为我们准备好了,我们只需要在开始训练时指出训练用的数据集ID即可。

本例需要的数据ID为:jq4ZXUCSVer4t65rWeyieG,我们也可以使用以下命令,先看看这个数据的内容。

$ floyd data output  jq4ZXUCSVer4t65rWeyieG 

运行这条命令后会自动打开浏览器,展示这个数据的内容:

2、训练模型

好,现在让我们执行命令,训练模型:

$ floyd run --gpu --env tensorflow-0.12:py2 --data jq4ZXUCSVer4t65rWeyieG "python style.py --style examples/style/la_muse.jpg --base-model-path /input/pre-trained-tf/la_muse.ckpt --epoch 1 --total-iterations 10 --checkpoint-dir /output"

其中:

--gpu 代表使用GPU计算  

--env tensorflow-0.12:py2

      代表使用Python2.0版本的Tensorflow0.12

--data 代表我们使用这个ID代表的数据   

       注意数据包含的所有文件都会挂载在云服务器的“/input“文件夹下   

       所以在程序中需要指定数据的根目录为“/input”  

“python....” 就是我们要执行的命令,

             注意其中的“/input/pre-trained-tf/la_muse.ckpt”

             指定的就是“通过数据ID挂载的数据。

执行命令后,在终端中会提示:

注意上面的“RUN ID”,这个很重要,我们以后对这个运行实例进行的各种操作,都需要通过这个ID来完成。

实例运行后,我们可以通过命令:

$ floyd logs <RUN_ID> 

来查看模型训练的日志及进度。

模型训练结束,我们可以看到这个训练实例运行了246秒,状态为success,这就代表本实例执行成功结束,不再计费了。 有时候我们同时运行了多个实例,想查看每个实例的状态,就可以用下面的命令:

$ floyd status 

这样会打印出所有实例的“RUN ID”以及运行状态。

如果在实例运行过程中,我们想停止它,可以执行下面的命令:

$ floyd stop <RUN_ID> 

我们可以单独查看某个计算实例的详细信息,比如对于上面的项目,使用命令:

$ floyd info <RUN_ID> 

我的输出为,注意其中的“Output ID”:

3、验证模型

我们可以通过命令来查看“Output ID”数据中包含的文件:

$ floyd data output Pro97DTLbTJbC52ay7BQWk 

命令执行后浏览器自动打开,显示云服务器数据目录:

以上的.ckpt就是训练好的模型文件,在下一步中,我们将使用这个模型转换一张图片。

下面我们将使用刚刚训练的模型,来转换一张图片的风格。

$ floyd run --env tensorflow-0.12:py2 --data Pro97DTLbTJbC52ay7BQWk "python evaluate.py --allow-different-dimensions  --checkpoint /input/fns.ckpt --in-path ./images/ --out-path /output/"

实例仅需要28秒就运行完毕了。此时我们可以第5步那样,使用下面两条命令来查看输出:

$ floyd info <RUN ID> 

$ floyd data output <OUTPUT ID> 

也可以直接使用一条命令来查看输出:

$ floy output <RUN ID> 

执行命令后会自动打开浏览器,并显示云服务器目录。经过转换的图片是这样的:

到这里使用Floyd训练常规深度学习模型的实验就结束了。

最后我们除了使用命令 floyd status 查看本次实例的运行信息。

也可以在Floyd网站上的DashBoard上看到实例的详细信息。

Floyd常用命令速查表

登陆: floyd login

初始化目录: floyd init

查看数据集:floyd data output 

运行实例: floyd run --gpu

查看实例日志: floyd logs 

查看所有实例: floyd status

手动停止实例: floyd stop 

查看实例运行结果信息: floyd info 

查看输出数据: floyd data output 

查看输出数据: floyd output 

所有命令,请参考:

http://docs.floydhub.com/commands/

所有环境,请参考:

http://docs.floydhub.com/home/environments/

常用公共数据集,请参考:

http://docs.floydhub.com/guides/datasets/

上传和下载数据集的官方指导,请参考:

http://docs.floydhub.com/home/using_datasets/


最后多说一点

笔者最近在使用Floyd时,需要用到SVHN的数据集,发现Floyd并没有提供此数据集的公用ID,遂抱着试试看的心情问了一下。结果得到回复,Floyd最近正在憋一个大招,等完成后可以让用户搜索所有可用的数据集!Floyd用户那么多,基本上你能想到的数据集,都能找得到,这下Floyd不仅解决了环境问题,从此数据集也不用操心啦!



 集智AI学园特推出重磅课程!

香港理工大学的美女博士

手把手教你搭建一个聊天机器人!

最后三天,没报名的小伙伴们抓紧了!

扫码或点击“阅读原文”

可开发票

团购可享优惠

咨询详细课程内容

请添加集智AI学园园长微信cancyqian

推荐阅读

重磅系列课程:打造你自己的聊天机器人 | 李嫣然

限时免费 | 《聊天机器人的前世今生》——李嫣然

课程推荐 | 厉害了我的GAN

《深入浅出GAN-原理与应用》学习笔记

系列课程:从Python到Tensorflow——点亮你的AI技能树

课程推荐 | 进击的强化学习

AI江湖|筑基篇——人工神经网络

深度 | 人工智能让我们失业?不,这取决于我们自己

学员原创 | 人工智能产品经理的新起点(200页PPT下载)

基于神经机器翻译技术的英文修改器养成记 | 集智原创发明

用AI穿透你的注意力壁垒--计算传播学笔记 | 集智AI学园



关注集智AI学园公众号

获取更多更有趣的AI教程吧!

搜索微信公众号:swarmAI

集智AI学园QQ群:426390994

学园网站:campus.swarma.org

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存