当前位置: 首页 > 文档资料 > 机器学习 >

FloydHub

优质
小牛编辑
131浏览
2023-12-01

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,还支持 jupyterserve

    • 只有 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 时间)