文档:《 FloydHub 的入门教程》
作者:燕志伟
时间:2020-03-02
版权:原创
前言
Floydhub 网站的组织结构与文档逻辑写得有些零碎,且分散在多处,对初学者不太友好,所以,我写这个简单的入门教程,抛砖引玉。
注册一个帐号
- 在官网 https://www.floydhub.com/ 注册一个账号。
- 免费的资源只有CPU只有2小时,用途不大。收费的GPU有两种:
Type | Price | GPU | RAM | SSD |
---|---|---|---|---|
Standard GPU | 1.2 $/Hour | Tesla K80 12GB | 61 GB | 100 GB |
High Performance GPU | 4.2 $/Hour | Tesla V100 16GB | 61 GB | 100 GB |
注意:GPU的板上内存大小与RAM大小有限。如果模型太大,训练开始时,就会报错终止,所以最好先要估计一下内存的使用量。
安装Floyd命令行软件包
- 打开一个终端
- 使用Python pip 安装 floyd-cli
pip install floyd-cli
上传训练及测试数据集
- 「网页操作」先用浏览器在网页登录帐号myAccount。
- 「网页操作」在Datasets页面新建数据集,并为数据集起个名字,如cartoon_images。
- 「PC终端操作」登录,关联PC本机目录my_local_images与远程目录myAccount/cartoon_images,上传本机目录中所有文件到远程目录。注意,应提前组织好本机的目录结构。
$ floyd login
$ cd my_local_images; floyd data init myAccount/cartoon_images
$ floyd data upload
在upload 期间如果中断了,下次可用 floyd data upload -resume 断点续传。
新建一个Project
- 「网页操作」先用浏览器在网页登录帐号myAccount。
- 「网页操作」在Projects页面新建一个项目,并为新的项目起个名字,如gan_cartoon。
使用floyd的计算资源进行训练
- 在PC机上,先准备好自己的模型文件main.py (Python文件),并拷贝到一个新建的空目录中gan_model去。
- 「PC终端操作」,使用命令在远端Floyd服务器上运行一个计算任务。
$ cd gan_model
$ floyd run \
--gpu \
--env tensorflow-1.9 \
--data myAccount/datasets/cartoon_images/1:dataset \
--follow "python main.py --phase train --dataset alimages --epoch 1 --iteration 2 --light True"
–gpu 指定使用GPU;
–env 参数指定tensorflow的版本;
–data 参数是映射刚建好的训练集目录名(在WEB页面中找)到本次任务的训练目录名(即在model.py 源代码中使用的数据集目录名),使用冒号分开。如果有多个目录名需要映射,–data 可以重复使用多次。
–follow 参数就是实际在floyd的一个Linux的虚拟机上使用的训练命令了。例子中,只是我在训练过程中使用的命令。大家可以根据自己在本机运行的情况,写自己的训练命令。
注意,在gan_model目录中不要放其它无关文件,因为此目录中的所有文件和目录都会被命令 floyd run 上传到远端。另外,在例子中第 5 行最后一个单词所指的远端目录名dataset会在训练时映射为 /dataset 在根目录下,注意在训练脚本中修改相应的路径。
训练结束下载结果数据
- 「网页操作」在网页上找到这个JOB的全称 myAccount/projects/gan_cartoon/17
- 「PC终端操作」打开一个终端,输入下面的命令下载结果数据。
$ mkdir train_result_backup
$ cd train_result_backup
$ floyd init gan_cartoon %关联项目名字到当前目录
$ floyd data clone myAccount/projects/gan_cartoon/17 %下载本次JOB的所有文件
总结
在Floydhub 的运行训练命令的基本步骤与本地PC机上运行本质上是一样的。但是,其用WEB网页及本地命令行floyd-cli两个工具来管理和衔接整个过程,会让人在两个工具之间不断地切换来完成整个训练或计算过程。这个过程对用户其实并不友好。当前,不少的云资源都会采用类似方式,希望大家注意这个问题。
(END)