# 数据结构 本文档用于说明PaddleX RESTful模块自定义的数据结构 ## Protobuf结构化数据 ``` message Dataset { string id = 1; string name = 2; string desc = 3; // 'classification': 分类数据 // 'segmentation': 分割数据 // 'detection_voc': 检测数据(仅用于检测) // 'detection_coco': 检测数据(用于检测,分割,实例分割) string type = 4; string path = 5; string create_time = 6; } message Project { string id = 1; string name = 2; string desc = 3; // 'classification' // 'segmentation' // 'segmentation' // 'instance_segmentation' // 'remote_segmentation' string type = 4; string did = 5; string path = 6; string create_time = 7; } message Task { string id = 1; string name = 2; string desc = 3; string pid = 4; string path = 5; string create_time = 6; //裁剪任务id string parent_id = 7; } message PretrainedModel { string id = 1; string name = 2; string model = 3; string type = 4; // 所属项目id string pid = 5; string tid = 6; string create_time = 7; string path = 8; } message ExportedModel { string id = 1; string name = 2; string model = 3; string type = 4; // 所属项目id string pid = 5; string tid = 6; string create_time = 7; string path = 8; int32 exported_type = 9; } message Workspace { string version = 1; string path = 2; map datasets = 3; map projects = 4; map tasks = 5; int32 max_dataset_id = 6; int32 max_project_id = 7; int32 max_task_id = 8; string current_time = 9; int32 max_pretrained_model_id = 10; map pretrained_models = 11; int32 max_exported_model_id = 12; map exported_models = 13; } ``` ## 状态枚举变量 ### DatasetStatus(数据集状态变量) ``` DatasetStatus = Enum('DatasetStatus', ('XEMPTY', #空数据集 'XCHECKING', #正在验证数据集 'XCHECKFAIL', #数据集验证失败 'XCOPYING', #正在导入数据集 'XCOPYDONE', #数据集导入成功 'XCOPYFAIL', #数据集导入失败 'XSPLITED' #数据集已经切分 ),start=0) ``` ### TaskStatus(任务状态变量) ``` TaskStatus = Enum('TaskStatus', ('XUNINIT',#任务还未初始化 'XINIT',#任务初始化 'XDOWNLOADING',#正在下载预训练模型 'XTRAINING',#任务正在运行中,改状态下任务不能被删除 'XTRAINDONE',#任务完成运行 'XEVALUATED',#任务评估完成 'XEXPORTING',#任务正在导出inference模型 'XEXPORTED',#任务已经导出模型 'XTRAINEXIT', #任务运行中止 'XDOWNLOADFAIL', #任务下载失败 'XTRAINFAIL', #任务运行失败 'XEVALUATING',#任务评估中 'XEVALUATEFAIL', #任务评估失败 'XEXPORTFAIL', #任务导出模型失败 'XPRUNEING', #裁剪分析任务运行中 'XPRUNETRAIN'#裁剪训练任务运行中 ),start=0) ``` ### ProjectType(项目类型) ``` ProjectType = Enum('ProjectType', ('classification',#分类 'detection',#检测 'segmentation',#分割 'instance_segmentation',#实例分割 'remote_segmentation'#遥感分割 ),start=0) ``` ### DownloadStatus(下载状态变量) ``` DownloadStatus = Enum('DownloadStatus', ('XDDOWNLOADING',#下载中 'XDDOWNLOADFAIL',#下载失败 'XDDOWNLOADDONE',下载完成 'XDDECOMPRESSED'解压完成 ),start=0) ``` ### PruneStatus(裁剪状态变量) ``` PruneStatus = Enum('PruneStatus', ('XSPRUNESTART',#启动裁剪任务 'XSPRUNEING',#正在裁剪模型 'XSPRUNEDONE',#已完成裁剪任务 'XSPRUNEFAIL',#裁剪任务失败 'XSPRUNEEXIT',#裁剪任务已经停止 ),start=0) ``` ### PredictStatus(预测任务状态变量) ``` PredictStatus = Enum('PredictStatus', ('XPRESTART',#预测开始 'XPREDONE',#预测完成 'XPREFAIL'#预测失败 ), start=0) ``` ### PretrainedModelStatus(预训练模型状态变量) ``` PretrainedModelStatus = Enum('PretrainedModelStatus', ('XPINIT', #初始化 'XPSAVING', #正在保存 'XPSAVEFAIL',#保存失败 'XPSAVEDONE' #保存完成 ),start=0) ``` ### ExportedModelType(模型导出状态变量) ``` ExportedModelType = Enum('ExportedModelType', ('XQUANTMOBILE',#量化后的lite模型 'XPRUNEMOBILE', #裁剪后的lite模型 'XTRAINMOBILE',#lite模型 'XQUANTSERVER', #量化后的inference模型 'XPRUNESERVER', #裁剪后的inference模型 'XTRAINSERVER'#inference模型 ),start=0) ```