pack
命令作用
将用户本地代码打包成一个tar包并上传到云知芯 Ufile产品中,该tar包可以在控制台界面使用“代码模式”部署版本(操作参见deploy)
注意:该命令与tar命令区别是它不但会在本地生成tar包,还会上传到云知芯的Ufile中
准备工作
1)安装云知芯 UFile SDK
wget http://sdk.ufile.auto-ai.com.cn/python_sdk.tar.gz tar zxvf python_sdk.tar.gz cd ufile-python sudo python setup.py install
注:UFile SDK仅兼容request 2.10.0以下版本
2)安装UAI SDK
git clone https://github.com/ucloud/uai-sdk cd uai-sdk sudo python setup.py install
3)获取用户公钥和私钥
- 登录云知芯 官方网站,进入Console页面:https://console.auto-ai.com.cn/dashboard
- 点击左上角的“产品与服务”选项,选择“监控管理”列表下的“API密钥 UAPI”选项后,点击API密钥中的“显示”选项,按照提示获取用户的公钥和私钥。
准备打包所需文件
用户需将AI在线服务所需的代码以及模型文件放在某一路径下,在部署时将该路径作为参数pack_file_path上传。文件目录结构示例如下:
file_dir (对应参数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的同级目录
uai_tool.py (从undefined安装路径/uai_tools/uai_tool.py拷贝) file_dir(对应参数pack_file_path,相对路径) code_files1 code_files2 code_files3 checkpoint_dir (对应参数model_dir,相对路径) model_files1 model_files2 model_files3
执行pack命令
python uai_tool.py pack {caffe,keras,mxnet,tf} --public_key PUBLIC_KEY --private_key PRIVATE_KEY [--project_id PROJECT_ID] --bucket BUCKET --pack_file_path PACK_FILE_PATH --upload_name UPLOAD_NAME --main_module MAIN_MODULE --main_class MAIN_CLASS --model_dir MODEL_DIR --code_files CODE_FILES [--model_name MODEL_NAME] [--all_one_file ALL_ONE_FILE] [--model_arch_type MODEL_ARCH_TYPE] [--num_epoch NUM_EPOCH]
- 参数说明
1) 公共参数
参数 说明 是否必需 public_key 用户的公钥 是 private_key 用户的私钥 是 project_id 项目ID 否 bucket 用户对象存储空间域名(Ufile Bucket) 是 pack_file_path 待打包文件所在路径(相对路径) 是 upload_name 上传的tar文件名 是 main_module 包含主类的代码文件(不包含后缀名) 是 main_class 主类名称 是 model_dir 模型文件的路径(相对路径) 是 code_files 所需代码文件,需包含文件后缀名(若有多个,请用','隔开,中间不包含空格) 是 2)其他参数(各框架另外所需参数)
参数名称 | 说明 | 是否必须 | 默认值 | 适用框架 |
---|---|---|---|---|
model_name | 模型名称 | 是 | 无 | Caffe, Keras, MXNet |
all_one_file | 模型的框架及参数是否在同一文件中(true或false) | 是 | false | Keras |
model_arch_type | 模型框架文件后缀名 | 否 | 'json' | Keras |
num_epoch | 保存模型文件时的epoch数 | 是 | 无 | MXNet |
pack命令样例
1)caffe
python uai_tool.py pack caffe --public_key=PUBLIC_KEY --private_key=PRIVATE_KEY --bucket=UFILE_BUCKET --pack_file_path=/PACK/FILE/PATH --upload_name=UPLOAD_NAME.tar --main_module=MAIN_MODULE --main_class=MAIN_CLASS --model_dir=MODEL_DIR --code_files=CODE_FILES1,CODE_FILES2,CODE_FILES3 --model_name=MODEL_NAME
2)keras
python uai_tool.py pack keras --public_key=PUBLIC_KEY --private_key=PRIVATE_KEY --bucket=UFILE_BUCKET --pack_file_path=/PACK/FILE/PATH --upload_name=UPLOAD_NAME.tar --main_module=MAIN_MODULE --main_class=MAIN_CLASS --model_dir=MODEL_DIR --code_files=CODE_FILES1,CODE_FILES2,CODE_FILES3 --model_name=MODEL_NAME --all_one_file=ALL_ONE_FILE --model_arch_type=MODEL_ARCH_TYPE
3)mxnet
python uai_tool.py pack mxnet --public_key=PUBLIC_KEY --private_key=PRIVATE_KEY --bucket=UFILE_BUCKET --pack_file_path=/PACK/FILE/PATH --upload_name=UPLOAD_NAME.tar --main_module=MAIN_MODULE --main_class=MAIN_CLASS --model_dir=MODEL_DIR --code_files=CODE_FILES1,CODE_FILES2,CODE_FILES3 --model_name=MODEL_NAME --num_epoch=NUM_EPOCH
4)tensorflow
python uai_tool.py pack tf --public_key=PUBLIC_KEY --private_key=PRIVATE_KEY --bucket=UFILE_BUCKET --pack_file_path=/PACK/FILE/PATH --upload_name=UPLOAD_NAME.tar --main_module=MAIN_MODULE --main_class=MAIN_CLASS --model_dir=MODEL_DIR --code_files=CODE_FILES1,CODE_FILES2,CODE_FILES3
- 输出说明
成功执行后,将返回如下信息:
upload local file :PACK_FILE_PATH/UPLOAD_NAME.tar to ufile key=UPLOAD_NAME.tar successful