main_dataprocess
接口功能
dataprocess组件入口,自带命令行输入参数。dataprocess组件的所有输入数据都是从存储系统中获取,大多都通过s3路径指定。
接口引用路径
ockics.entry.main_dataprocess
接口格式
函数:main_dataprocess(s3_endpoint=None, s3_ak=None, s3_sk=None, s3_secure=None, s3_certcheck=None)
输入参数
参数  | 
类型  | 
是否必选  | 
说明  | 
取值要求  | 
|---|---|---|---|---|
s3_endpoint  | 
str  | 
可选  | 
组件访问minio存储服务器的endpoint。如果调用时不输入,则默认传入None,内部会自动从环境变量S3_ENDPOINT_URL中获取endpoint。  | 
函数参数,url:port。  | 
s3_ak  | 
str  | 
可选  | 
组件访问minio存储服务器的access key。如果调用时不输入,则默认传入None,内部会自动从环境变量ACCESS_KEY_ID中获取access key。  | 
函数参数,access key字符串。  | 
s3_sk  | 
str  | 
可选  | 
组件访问minio存储服务器的secret key。如果调用时不输入,则默认传入None,内部会自动从环境变量SECRET_ACCESS_KEY中获取secret key。  | 
函数参数,secret key字符串。  | 
s3_secure  | 
bool  | 
可选  | 
访问minio时是否使能https,默认值False。如果调用时不输入,则默认传入None,内部会自动从环境变量ACCESS_SECURE中获取值。开启证书认证时,可以使用环境变量SSL_CERT_FILE指定本地的证书路径。  | 
函数参数: 
 ACCESS_SECURE环境变量使用"True"/"False"字符串代表True/False。  | 
s3_certcheck  | 
bool  | 
可选  | 
预留参数,当前版本暂未使用。  | 
函数参数: 
  | 
-btm/--base-train-model  | 
str  | 
必选  | 
指定存放了预训练模型的s3对象路径。  | 
命令行输入参数,一个存储了训练模型的s3存储路径,如:“s3://inclearning/yolov5/models/base.pt”。  | 
-tw/--work-url  | 
str  | 
必选  | 
指定组件运行的工作目录,工作目录是一个s3路径。组件运行过程中的中间输入文件会存放在工作目录下,供其他组件或者ics-manager使用。  | 
命令行输入参数,一个s3存储路径,如:“s3://inclearning/yolov5”。  | 
-df/--dataset-fmt  | 
str  | 
必选  | 
指定下面传入的数据集的格式,当前支持COCO格式,本组件支持的COCO数据集格式:数据集目录下存在两个子目录annotations和images,分别存放标注的json文件和平铺存放的jpg文件。  | 
“COCO”  | 
-td/--train-dataset  | 
str  | 
必选  | 
指定组件使用的训练数据集的s3存储路径。  | 
命令行输入参数,一个s3存储路径,如:“s3://inclearning/yolov5/datasets/train”。  | 
-ed/--eval-dataset  | 
str  | 
必选  | 
指定组件使用的测评数据集的s3存储路径。  | 
命令行输入参数,一个s3存储路径,如:“s3://inclearning/yolov5/datasets/eval”。  | 
-tc/--train-config  | 
str  | 
必选  | 
指定组件使用的训练配置文件的s3存储路径,配置文件支持yaml和json两种格式。此配置文件将在预处理后原封不动的传递给trainer组件,trainer组件的用户自定义训练脚本可以解析yaml获取用户自定义的配置信息。  | 
命令行输入参数,一个s3存储路径,如:“s3://inclearning/yolov5/config/train.yaml”。  | 
-ec/--eval-config  | 
str  | 
必选  | 
指定组件使用的测评配置文件的s3存储路径,配置文件支持yaml和json两种格式。此配置文件将在预处理后原封不动的传递给eval组件,eval组件的用户自定义测评脚本可以解析yaml获取用户自定义的配置信息。  | 
命令行输入参数,一个s3存储路径,如:“s3://inclearning/yolov5/config/eval.yaml”。  | 
-ac/--atc-config  | 
str  | 
必选  | 
指定组件使用的模型转换配置文件的s3存储路径,配置文件支持yaml和json两种格式。此配置文件将在预处理后原封不动的传递给modelconvert组件,modelconvert组件自动将文件中的key作为atc的命令行参数key,value作为atc的命令行参数值,用于执行atc命令。  | 
命令行输入参数,一个s3存储路径,如:“s3://inclearning/yolov5/config/atc.yaml”。  | 
-osn/--output-sample-number  | 
str  | 
必选  | 
本地的一个文件路径,dataprocess预处理后识别的难例数量的值以文本的形式写入此文件。  | 
命令行输入参数,一个本地存储路径,如:“./output/data”。  | 
-otm/--output-train-model  | 
str  | 
必选  | 
本地的一个文件夹路径,dataprocess预处理后的预训练模型文件将存放到此目录下面,供后面的trainer组件使用。  | 
命令行输入参数,一个本地存储路径,如:“./output/models/train/”。  | 
-otd/--output-train-data  | 
str  | 
必选  | 
本地的一个文件夹路径,dataprocess预处理后的训练数据集文件将存放到此目录下面,供后面的trainer组件使用。  | 
命令行输入参数,一个本地存储路径,如:“./output/datasets/train/”。  | 
-otdi/--output-train-data-index  | 
str  | 
必选  | 
本地的一个文件夹路径,dataprocess预处理后的数据集图片列表文件将存放到此目录下面,供后面的trainer组件使用,将会有一个dataIndex.txt的文件存放到此目录下,dataIndex.txt中每行为一个jpg文件的s3路径,trainer组件可根据dataIndex.txt的文件下载数据集的图片。  | 
命令行输入参数,一个本地存储路径,如:“./output/datasets/trainindex/”。  | 
-oed/--output-eval-data  | 
str  | 
必选  | 
本地的一个文件夹路径,dataprocess预处理后的测评数据集文件将存放到此目录下面,供后面的eval组件使用。  | 
命令行输入参数,一个本地存储路径,如:“./output/datasets/eval/”。  | 
-oedi/--output-eval-data-index  | 
str  | 
必选  | 
本地的一个文件夹路径,dataprocess预处理后的测评数据集图片列表文件将存放到此目录下面,供后面的trainer组件使用,将会有一个dataIndex.txt的文件存放到此目录下,dataIndex.txt中每行为一个jpg文件的s3路径,eval组件可根据dataIndex.txt的文件下载数据集的图片。  | 
命令行输入参数,一个本地存储路径,如:“./output/datasets/evalindex/”。  | 
-otc/--output-train-config  | 
str  | 
必选  | 
指定下载的训练配置文件存放在本地的目录路径。  | 
命令行输入参数,一个本地存储路径,如:“./output/config/train/”,本路径和eval、atc配置文件的路径不能相同。  | 
-oec/--output-eval-config  | 
str  | 
必选  | 
指定下载的测评配置文件存放在本地的目录路径。  | 
命令行输入参数,一个本地存储路径,如:“./output/config/eval/”,本路径和train、atc配置文件的路径不能相同。  | 
-oac/--output-atc-config  | 
str  | 
必选  | 
指定下载的模型转换配置文件存放在本地的目录路径。  | 
命令行输入参数,一个本地存储路径,如:“./output/config/atc/”,本路径和train、eval配置文件的路径不能相同。  | 
-sa/--standalone  | 
bool  | 
可选  | 
调试使用,输入此参数,除了下载输入数据,中途可不访问s3服务,方便调试。  | 
命令行输入参数: 
  | 
-h/--help  | 
str  | 
可选  | 
查看帮助信息并退出。  | 
命令行输入参数,查看帮助信息并退出。  | 
返回值
无
使用样例
import os
from ockics.entry import main_dataprocess
def decrypt(data):
    ''' decrypt algorithm
    '''
    decryptdata = data
    return decryptdata
def get_s3info():
    ''' get s3 end
    '''
    endpoint = os.getenv("S3_ENDPOINT_URL", "www.xxxxx.xxx")
    encrypt_ak = os.getenv("ACCESS_KEY_ID", "bWluaW8=")
    encrypt_sk = os.getenv("SECRET_ACCESS_KEY", "bWluaW8xMjM=")
    issecure = os.getenv("ACCESS_SECURE", 'False').lower() == 'true'
    checkcert = False
    accesskey = decrypt(encrypt_ak)
    secretkey = decrypt(encrypt_sk)
    
    return endpoint, accesskey, secretkey, issecure, checkcert
if __name__ == "__main__":
    endpoint, accesskey, secretkey, issecure, checkcert = get_s3info()
    main_dataprocess(endpoint, accesskey, secretkey, issecure, checkcert)