制作Mnist在线服务镜像
接下来我们需要使用UAI-SDK提供的打包工具来打包Mnist的训练镜像。
前期准备
我们还需要准备
- 代码
- 模型文件
准备代码
我们再将mnist_inference.py放入/data/mnist/目录下:
$ cd /data/mnist $ cp cp ~/uai-sdk/examples/tensorflow/inference/mnist_1.1/mnist_inference.py ./
得到的目录情况如下:
/data/mnist |_ mnist_inference.py
模型文件
我们可以使用tf-mnist中训练出来的mnist模型文件,我们也可以自己训练一个新的,当然我们的github也提供了训练好的模型https://github.com/ucloud/uai-sdk/tree/master/examples/tensorflow/inference/mnist_1.1/checkpoint_dir
我们把模型文件放入/data/mnist/目录下:
/data/mnist |_ mnist_inference.py |_ checkpoint_dir | |_ checkpoint | |_ mnist.mod.data-00000-of-00001 | |_ mnist.mod.index | |_ mnist.mod.meta
mnist.conf
该config会由系统自动生成
打包在线服务镜像
TensorFlow镜像打包工具为 uai-sdk/uai_tools/uai_tool.py,我们将该工具也放入/data/mnist。
$ cd /data/mnist $ cp ~/uai-sdk/uai_tools/uai_tool.py ./
整个目录结构如下:
/data/mnist |_ mnist_inference.py |_ checkpoint_dir | |_ checkpoint | |_ mnist.mod.data-00000-of-00001 | |_ mnist.mod.index | |_ mnist.mod.meta |_ uai_tool.py
打包Mnist镜像
我们使用uai_tool.py 打包mnist镜像,具体的参数说明在TensorFlow 打包镜像说明。
我们用如下命令来打包:
python uai_tool.py packdocker tf \ --public_key\ --private_key \ --main_class \ --main_module \ --model_dir \ --pack_file_path \ --uhub_username \ --uhub_password \ --uhub_registry \ --uhub_imagename \ --ai_arch_v= \ --internal_uhub \
public_key & private_key
这里的公私钥是云知芯用户账号的唯一标识,可以依据key的方法获取你账号的公私钥参数
main_class
推理服务的对象类,本案例为MnistModel
main_module
入口python模块,本案例为mnist_inference.py
model_dir
模型文件的存放目录,本案例为 ./checkpoint_dir/,打包工具会将模型文件夹自动放入: /ai-ucloud-client-django/ 目录下。
pack_file_path
待打包文件所在路径,本案例为./code/
uhub_username, uhub_password, uhub_registry
uhub的用户名密码为云知芯 console图形界面登录时所用的邮箱和密码。而uhub_registry就是uhub镜像库的名字,在本案例中为 uai_demo
uhub_imagename
自定义的docker镜像名字,在本案例中我们使用tf-mnist-infer
ai_arch_v
在线服务镜像版本,这里我们选择tensorflow-1.1.0,这样就可以以tensorflow-1.1.0为基础镜像打包mnist的训练镜像。其他TensorFlow 基础镜像选择方法请参见打包镜像
internal_uhub
如果是使用ucloud云主机操作打包工具,则选择false,如果是使用公网执行打包操作,则选择true
执行打包Mnist镜像命令
我们执行如下命令就可以生成mnist在线服务镜像
$ sudo python uai_tool.py packdocker tf \ --public_key\ --private_key \ --main_class MnistModel \ --main_module mnist_inference \ --model_dir checkpoint_dir/ \ --pack_file_path ./code/ \ --uhub_username \ --uhub_password \ --uhub_registry uai_demo \ --uhub_imagename tf-mnist-infer \ --ai_arch_v=tensorflow-1.1.0 \ --internal_uhub false \
最终我们将获得镜像:uhub.service.auto-ai.com.cn/uai_demo/tf-mnist-infer:latest