集智AI学园原创
作者:集智小仙女
编辑:Swarma Hannah
导读
本文是文章《吐血推荐:超级好用的深度学习云平台Floyd|集智AI学园 》的下篇。我们在上篇文章中已经基本介绍了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
推荐阅读
AI英雄们,我们邀你向病理诊断和智能投顾发起挑战!|人工智能创新创业大赛
关注集智AI学园公众号
获取更多更有趣的AI教程吧!
搜索微信公众号:swarmAI
集智AI学园QQ群:426390994
学园网站:campus.swarma.org
0
推荐