TensorFlow 打包镜像说明
准备工作
1)安装UAI SDK
git clone https://github.com/ucloud/uai-sdk cd uai-sdk sudo python setup.py install
2)获取用户公钥和私钥
- 登录云知芯 官方网站,进入Console页面:https://console.auto-ai.com.cn/dashboard
- 点击左上角的“产品与服务”选项,选择“监控管理”列表下的“API密钥 UAPI”选项后,点击API密钥中的“显示”选项,按照提示获取用户的公钥和私钥。
准备打包所需文件
用户需将AI在线服务所需的代码以及模型文件放在某一路径下,参数pack_file_path上传。文件目录结构示例如下:
/xxx/xxx/xxx/ code/ (对应参数pack_file_path,绝对路径) code_files1 code_files2 code_files3 checkpoint_dir (对应参数model_dir,相对路径) model_files1 model_files2 model_files3
准备命令行工具
为后续操作方便,可将UAI SDK安装包中的命令行工具(undefined安装路径/uai_tools/uai_tool.py)拷贝到代码pack_file_path的同级目录
/xxx/xxx/xxx/ uai_tool.py (从undefined安装路径/uai_tools/uai_tool.py拷贝) code/ (对应参数pack_file_path,绝对路径) code_files1 code_files2 code_files3 checkpoint_dir (对应参数model_dir,相对路径) model_files1 model_files2 model_files3
执行packdocker命令
注:参数具体值根据实际修改
python uai_tool.py packdocker tf \ --public_key xxxxx \ --private_key xxxxx \ --main_class MnistModel \ --main_module mnist_inference \ --model_dir checkpoint_dir \ --pack_file_path ./code \ --uhub_username xxxxx \ --uhub_password xxxxx \ --uhub_registry xxxxx \ --uhub_imagename tf-inference:test \ --ai_arch_v tensorflow-1.1.0 \ --in_host no
- 参数说明
1) 公共参数
参数 | 说明 | 是否必需 |
---|---|---|
public_key | 用户的公钥 | 是 |
private_key | 用户的私钥 | 是 |
project_id | 项目ID | 否 |
pack_file_path | 待打包文件所在路径 | 是 |
main_module | 包含主类的代码文件(不包含后缀名) | 是 |
main_class | 主类名称 | 是 |
model_dir | 模型文件的路径(相对路径) | 是 |
uhub_username | uhub镜像库登录用户名,即云知芯的账号邮箱 | 是 |
uhub_password | uhub镜像库登录的密码,即云知芯的账号密码 | 是 |
uhub_registry | uhub镜像仓库名称,不支持大写字母 | 是 |
uhub_imagename | 生成的镜像名称,镜像名与tag间以冒号分割。如test:v1.1 | 是 |
ai_arch_v | 可选参数。格式为"ai框架名称-版本号",如tensorflow-1.4.0。如不填写,则默认选择系统支持的一个版本 | 否 |
in_uhost | 优化参数。当前打包程序是否运行在云知芯云主机中,如果是则为yes,否则为no(默认)。(注:如果运行在云主机中,则可利用内网万兆带宽,加速镜像上传下载) | 否 |
注:打包工具会在pack_file_path下面生成一个 .conf 文件,该文件是mnist inference模块加载的配置文件,该文件会连同其他文件一起被打包进在线服务镜像。
注2: 打包工具会自动生成一个名为uaiservice.Dockerfile的文件,描述打包操作是如何执行的
Uai Inference支持各版本明细
深度学习框架名称 | 版本名称 | Python | 命令组合 | 说明 |
---|---|---|---|---|
tensorflow | 1.1.0 | python-2.7.6 | --ai_arch_v=tensorflow-1.1.0 | |
tensorflow | 1.2.0 | python-2.7.6 | --ai_arch_v=tensorflow-1.2.0 | |
tensorflow | 1.3.0 | python-3.6 | --ai_arch_v=tensorflow-1.3.0 --os=ubuntu-16.04 --python_version=python-3.6 | |
tensorflow | 1.4.0 | python-2.7.6 | --ai_arch_v=tensorflow-1.4.0 | |
tensorflow | 1.6.0 | python-2.7.6 | --ai_arch_v=tensorflow-1.6.0 --os=ubuntu-16.04 | |
tensorflow | 1.6.0 | python-3.6 | --ai_arch_v=tensorflow-1.6.0 --os=ubuntu-16.04 --python_version=python-3.6 | |
tensorflow | 1.6.0 | python-2.7.6 | --ai_arch_v=tensorflow-1.6.0gpu --os=ubuntu-16.04 | GPU |
tensorflow | 1.6.0 | python-3.6 | --ai_arch_v=tensorflow-1.6.0gpu --os=ubuntu-16.04 --python_version=python-3.6 | GPU |
tensorflow | 1.7.0 | python-2.7.6 | --ai_arch_v=tensorflow-1.7.0 --os=ubuntu-16.04 | |
tensorflow | 1.7.0 | python-3.6 | --ai_arch_v=tensorflow-1.7.0 --os=ubuntu-16.04 --python_version=python-3.6 | |
tensorflow | 1.7.0 | python-2.7.6 | --ai_arch_v=tensorflow-1.7.0gpu --os=ubuntu-16.04 | GPU |
tensorflow | 1.7.0 | python-3.6 | --ai_arch_v=tensorflow-1.7.0gpu --os=ubuntu-16.04 --python_version=python-3.6 | GPU |
tensorflow | 2.0.0a | python-3.5 | --ai_arch_v=tensorflow-2.0.0a --os=ubuntu-16.04 --python_version=python-3.5 | |
tensorflow | 2.0.0a | python-2.7.6 | --ai_arch_v=tensorflow-2.0.0a --os=ubuntu-16.04 --python_version=python-2.7.6 | |
tensorflow | 2.0.0a | python-3.5 | --ai_arch_v=tensorflow-2.0.0agpu --os=ubuntu-16.04 --python_version=python-3.5 | GPU |
tensorflow | 2.0.0a | python-2.7.6 | --ai_arch_v=tensorflow-2.0.0agpu --os=ubuntu-16.04 --python_version=python-2.7.6 | GPU |
输出结果
upload docker images successful. images:uhub.auto-ai.com.cn/uai_demo/tf-inference:test