快速入门
简介
Xiaomi Cloud-ML提供深度学习平台服务,用户只需要编写TensorFlow应用的模型代码,就可以提交到云端训练,并且启动模型服务进行预测。
安装客户端
参考 安装命令行工具 初始化客户端运行环境。
配置客户端
用户需要获取生态云的Access key和Secret key,使用下面的命令初始化。
cloudml init
用户配置会自动保存到 ~/.config/xiaomi/config
文件中,或者通过环境变量的方式初始化AKSK。
export XIAOMI_ACCESS_KEY_ID="AKPFUTXXXXXXLIPXVG"
export XIAOMI_SECRET_ACCESS_KEY="JDv8ER5CocaISnLXXXXXXXXXXaXfyOpjz8nrLsuB"
export XIAOMI_CLOUDML_ENDPOINT="https://cnbj3-cloud-ml.api.xiaomi.net"
# 默认使用的fds endpoint,参考<http://docs.api.xiaomi.com/fds/basic-concept.html>
export XIAOMI_FDS_ENDPOINT="cnbj2.fds.api.xiaomi.com"
# 使用fdsfuse默认挂载到服务端的bucket
export CLOUDML_DEFAULT_FDS_BUCKET="cloud-ml"
注意:XIAOMI_CLOUDML_ENDPOINT
需要根据集群不同配置不同的值,请参考“集群环境”。
编写模型代码
用户可以编写深度学习模型代码,代码规范与社区版TensorFlow兼容,使用标准Python模块方式打包即可。
我们也提供samples项目例子,可参考 https://github.com/XiaoMi/cloud-ml-sdk 。
下面是一个线性模型的项目实例,可以直接运行下面的命令进行测试和提交。
mkdir trainer
touch trainer/__init__.py
curl "https://raw.githubusercontent.com/XiaoMi/cloud-ml-sdk/master/cloud_ml_samples/tensorflow/linear_regression/trainer/task.py" > trainer/task.py
然后在本地测试和验证TensorFlow应用的功能,注意Xiaomi Cloud-ML支持标准的TensorFlow应用,本地能运行的代码在云端也能运行,提交前需在本地测试通过。
python -m trainer.task
打包模型代码
我们接着打包这个Python模块,保存为tar.gz文件。
cat << EOF > setup.py
import setuptools
setuptools.setup(name='trainer', version='1.0', packages=['trainer'])
EOF
python setup.py sdist --format=gztar
然后上传模型代码到FDS服务,可以使用生态云的控制台或者FDS命令行工具。
FDS路径格式
上传到fds的文件路径的格式为fds://{bucket_name}/path/to/file
。
比如假设用户的bucket name是cloud-ml,数据放在这个bucket的test/README路径下,那么fds的文件路径格式为:
fds://cloud-ml/test/README
提交训练任务
使用下面的命令提交训练任务,假设用户创建的bucket为 cloud-ml
并且上传模型代码到 fds://cloud-ml/linear/trainer-1.0.tar.gz
路径。
cloudml jobs submit -n linear -m trainer.task -u fds://cloud-ml/linear/trainer-1.0.tar.gz -a "--model_path fds://cloud-ml/linear_model --output_path fds://cloud-ml/linear_tensorboard"
提交任务时,指定 model_path
表示模型导出的路径,指定 output_path
表示导出TensorBoard文件的路径,必须是用户有权限读写的FDS路径。
提交任务后,我们可以通过命令行工具查看训练任务的状态和日志。
cloudml jobs list
cloudml jobs logs linear
创建TensorBoard服务
未上线
创建模型服务
未上线
在线预测
未上线