# 自定义模型运行失败原因?
检查引擎版本
自定义模型包中的自定义模型及其相关脚本文件,均需基于Tensorflow或PyTorch引擎框架编写。
检查目录结构
自定义模型包“xxx.zip”中必须包含启动文件以及自定义模型文件。除此之外还可以包含一些其他必要的自定义脚本、自定义库、自定义算子库等。模型包文件解压后目录结构可参考如下:
. ├─ xxx #模型包根目录(名称可自定义) ├─ customer_auto_label.py #“自动标注”启动文件(如该模型用于自动标注,则必选,名称固定) ├─ customer_inference.py #“模型评估”启动文件(如该模型用于模型评估,则必选,名称固定) ├─ customer_package #自定义库(可选,名称可自定义) ├─ __init__.py #自定义库 -> python库 ├─ tensor_define.py #自定义库 -> python库文件 └─ ... ├─ customer_utils.py #自定义脚本1(可选,名称可自定义) ├─ customer_script2.sh #自定义脚本2(可选,名称可自定义) ├─ sub_directory #子文件夹 ├─ customer_operation.so #自定义算子库(可选,名称可自定义) └─ coustomer_model.pb #自定义模型文件(必选,名称可自定义) └─ ... #其他(可选)
注意: 您需将模型全部相关文件压缩为“.zip”包,并且保证解压后直接得到所有相关文件(外层勿嵌套其他文件夹)。
检查启动文件
若用于自动标注
Octopus平台自动标注模块将加载“customer_auto_label.py”中定义的类并实例化,然后依次执行该实例对象的load_model、pre_auto_label、auto_label、post_auto_label方法。用户必须定义一个唯一的自定义类,并导入父类“AutoLabelModel”,同时自定义类中必须定义这四种方法。启动文件中必须导入的部分对象请参考下表。
表 1 自动标注启动文件必选项
若用于模型评估
Octopus平台自动标注模块将加载“customer_inference.py”中定义的类并实例化,然后依次执行该实例对象的load_model、infer_preprocess、infer_execution、infer_postprocess方法。用户必须定义一个唯一的自定义类,并导入父类“AutoLabelModel”,同时自定义类中必须定义这四种方法。启动文件中必须导入的部分对象请参考下表。
表 2 模型评估启动文件必选项
关于自定义模型文件的更多详细说明,请参见“模型文件说明”。