FloydHub
FloydHub 是一个深度学习云平台,基于容器技术提供了一个简单易用的深度学习云环境。注册用户免费赠送 2 小时 GPU 和每月 20 小时的 CPU 计算资源以及 10 GB 的存储空间。
安装
$ pip install -U floyd-cli
$ floyd login
Authentication token page will now open in your browser. Continue? [Y/n]: y
Please copy and paste the authentication token.
This is an invisible field. Paste token and press ENTER:
入门示例
首先到 https://www.floydhub.com/projects/create 创建一个项目 mnist-cnn
,然后执行
$ git clone https://github.com/floydhub/quick-start.git
Cloning into 'quick-start'...
...
$ cd quick-start
$ floyd init mnist-cnn
Project "mnist-cnn" initialized in current directory
$ floyd run --gpu --env tensorflow-1.3 "python train_and_eval.py"
Creating project run. Total upload size: 25.4KiB
Syncing code ...
[================================] 27316/27316 - 00:00:00
JOB NAME
----------------------
mckay/projects/mnist-cnn/1
To view logs enter:
floyd logs mckay/projects/mnist-cnn/1
这会
- 将本地代码同步到 FloydHub 的服务器
- 在云端提供一个 GPU 实例
- 在云端配置安装了 TensorFlow 1.3 的深度学习环境
- 执行
python train_and_eval.py
- 存储输出日志并生成输出数据
- 一旦命令结束,自动终结 GPU 实例
如果使用了 Jupyter Notebook,则可以
$ floyd run --mode jupyter
Creating project run. Total upload size: 198.0B
Syncing code ...
[================================] 946/946 - 00:00:00
JOB NAME
-----------------------------------
mckay/projects/my_jupyter_project/1
Setting up your instance and waiting for Jupyter notebook to become available .............
Path to jupyter notebook: https://floydlabs.com/notebooks/gaftzXTdaPtQtQ9NvEieNg
这会自动在浏览器中打开云端开启的 Jupyter 服务器。
功能特性
-
执行模式:默认以任务形式
--mode job
,还支持jupyter
和serve
等- 只有 job 模式需要设置命令行
- serve 模式需要源码中包含 app.py (基于 Flask 的应用并监听在 5000 端口)和 floyd_requirements.txt
-
GPU:通过
--gpu
(Tesla K80) 或者--gpu2
(Tesla V100) 设置以 GPU 形式运行 -
数据
-
通过
--data mckay/datasets/mnist/1:/mnist
(类似于 docker volume)为任务提供数据 -
上传数据
$ floyd data init imagenet-2017 Dataset "imagenet-2017" initialized in current directory ... $ floyd data upload Compressing data... $ floyd data status mckay/datasets/mnist/1 DATA NAME CREATED STATUS DISK USAGE --------------------------- ------------- -------- ------------ mckay/datasets/mnist/1 3 minutes ago valid 82.96 MB
-
可在
floydhub.com
上面下载已上传和任务保存的数据
-
-
框架支持:通过
--env tensorflow-1.3
设置机器学习框架- 支持 Keras、Tensorflow、PyTorch、Theano、Caffe、Chainer、MxNet、Kur 等框架
- 默认使用 Python 3,可通过
:py2
后缀设置使用 Python 2
-
运行命令:就是一个脚本文件,如
python train.py
-
监控状态:
floyd status
-
查看日志:
floyd logs -t
-
模型存储:所有输出需要存储在
/output
目录中,如builder = tf.saved_model.builder.SavedModelBuilder("/output/cnn_model")
。在新任务中,可以通过数据卷的形式引用已存储的模型,如$ floyd run \ --gpu \ --env tensorflow-1.3 \ --data mckay/datasets/mnist/1:/mnist \ --data mckay/projects/quick-start/1/output:/model \ 'python eval.py'
附注
- 相比于三大云巨头,FloydHub 功能相当简洁,很容易入门
- 不支持分布式训练
- FloydHub 国内版 RussellCloud (功能与 FloydHub 基本一致,但无免费 GPU 时间)