# 自定义算法运行失败原因?
检查引擎版本
自定义算法包中的自定义算法及其相关脚本文件,均需基于Tensorflow或PyTorch引擎框架编写。
检查目录结构
算法文件“.zip”目录结构可参考如下,需要包括启动文件“Train.py”(启动文件名可自定义),以及一些必要的训练文件。若除了使用到Tensorflow或PyTorch原生的算法,还使用了第三方的库,则需要添加相应的依赖到算法文件中。
. ├─ xxx #算法名 ├─ 算法文件 #包含用户编写的一些算法文件(必选) ├─ Train.py #启动文件(必选,名称可自定义) ├─ requirements.txt #pip类依赖(可选) ├─ 可编译依赖1 #需要编译的依赖1(可选) ├─ 可编译依赖2 #需要编译的依赖2(可选) ├─ Model_file #模型包文件(名称可自定义) ├─ 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 #自定义算子库(可选,名称可自定义) └─ ...
检查启动文件
Octopus平台使用的数据集为“VOC格式”,在启动文件“xxx.py”中需指定数据集格式、路径等相关参数。Octopus平台生成的数据集包含以下文件:
. ├─ data_file #数据集包 ├─ JPEGImages #该数据集包含的JPEG格式图片 ├─ Annotations #该数据集包含的标注文件 ├─ ImageSets ├─ Main ├─ train.txt #图片文件名分隔符-训练 ├─ val.txt #图片文件名分隔符-验证 └─ classes.txt #标注类型
针对以上数据集信息,算法启动文件“xxx.py”中必须包含与数据集相关的配置项,因此启动文件中必须包含如下字段:
# 下载数据平台数据用于训练 import moxing as mox # 导入下载数据平台数据依赖 data_url = os.getenv('DLS_DATA_URL') # 获取数据平数据地址 # 将data_url 数据下载到data_file中,即数据集包文件中,包名称可自定义 mox.file.copy_parallel(data_url, data_file) # 将算法训练结果封装成模型用于模型评估与自动标注 # 输出的模型需要包含的内容见模型文件部分,模型输出的地址必须是/home/cache # 添加自定义算法参数 import argparse # 导入添加算法参数依赖 parser = argparse.ArgumentParser() #将total_epoches添加为自定义算法参数,类型、缺省值、帮助信息等可自定义 parser.add_argument("--total_epoches", type=int, default=3, help="The value of total epoches.") args = parser.parse_args()
说明:
- 从Octopus平台下载数据集,只要图片上包含您需要的类别,就会被下载,该图片上可能会同时存在其他类别标签。因此,如果您只是想训练特定类别,需要筛选。
关于自定义算法文件的更多详细说明,请参见“算法文件说明”。