云服务器内容精选

  • 解释说明 模型转换时,待转换模型存放的OBS路径。基于不同框架的模型,其模型输入目录的要求不同。 输入框架为Caffe 基于Caffe框架的模型,执行模型转换时,其输入目录需符合如下规范。 | |---xxxx.caffemodel 模型参数文件,输入目录下有且只能有一个,必填。 |---xxxx.prototxt 模型网络文件,输入目录下有且只能有一个,必填。 |---insert_op_conf.cfg 插入算子配置文件,输入目录下有且只有一个,可选。 |---plugin 自定义算子目录,输入目录下有且只能有一个plugin文件夹,可选。仅支持基于TE(Tensor Engine)开发的自定义算子。 输入框架为TensorFlow 基于TensorFlow框架的模型,执行模型转换时,其输入目录需符合如下规范。 | |---saved_model.pb 模型网络文件,输入目录下有且只能有一个,必填。支持以frozen_graph或saved_model格式保存的模型。 |---variables 固定子目录名称,包含模型的权重偏差等信息。“frozen_graph”格式不需要,“saved_model”格式必选。 |---variables.index 必选 |---variables.data-00000-of-00001 必选 |---insert_op_conf.cfg 插入算子配置文件,输入目录下有且只有一个,可选。 |---plugin 自定义算子目录,输入目录下有且只能有一个plugin文件夹,可选。仅支持基于TE(Tensor Engine)开发的自定义算子。
  • 准备工作 开发技能 熟悉C++语言,能够编写C++语言代码。 熟悉CAD建模相关知识。 了解OCCT几何建模相关知识。 了解C++构建相关工具(cmake等)。 开发环境 Windows 10+ Visual Studio 2017+或适用于Visual Studio 2017+的Microsoft Visual生成工具 CMake 3.7+ Linux: gcc g++ gdb CMake 3.7+ 许可准备 开发和使用DEE SDK需要获取DEE SDK许可文件。
  • 常见问题 Q:为什么使用SDK时,抛出了许可证相关的异常? A:请检查许可证的有效性,例如产品名称是否匹配,是否超过有效期限,并使用有效的许可证。 Q:为什么导入文件时,出现异常? A:请检查文件是否能在指定的路径下查找到,并检查输入文件是否为DEE SDK支持的文件类型。 Q:为什么转换后得到的结果文件中,不包含PMI的信息? A:此参数在默认情况下被设置为false,如果您需要此信息,请使用Base_WriterParameters::WritePMI()方法更改此项输出参数为true。
  • 请求示例 零件上传-单片上传 /basic/coremgr/public/api/v1/drawing/upload { "name" : "4903N12.STEP", "check_code" : "fefeb94f12c7d604c4b2c9570ac847864a731e9a029a2d6d81021bbc3ab52343", "is_chunked" : false, "type" : "PART", "source" : "temp", "file" : "binary(二进制文件流)" } 零件上传-分片上传(初始化阶段) /basic/coremgr/public/api/v1/drawing/upload { "name" : "010758215.stp", "check_code" : "b82bdd878b4788f95744eaa646a7a286ef5f4110caa703f9b521f4fbb59f48aa", "is_chunked" : true, "chunk_total" : 29, "type" : "PART", "source" : "temp", "request_type" : "init" } 零件上传-分片上传(上传阶段) /basic/coremgr/public/api/v1/drawing/upload { "id" : "4f2bddfa-dee7-4858-b41c-34705e9642a3", "name" : "010758215.stp", "check_code" : "b82bdd878b4788f95744eaa646a7a286ef5f4110caa703f9b521f4fbb59f48aa", "is_chunked" : true, "type" : "PART", "source" : "temp", "request_type" : "upload", "chunk_total" : 29, "chunk_index" : 1, "file" : "binary(二进制文件流)" } 装配体上传-单片上传 /basic/coremgr/public/api/v1/drawing/upload { "name" : "ensamble_suicide.zip", "check_code" : "af101d8c580ea70cb3c05fccf871a38303fb94e6cca00ff4214aebbab674b5df", "is_chunked" : false, "type" : "ASSEMBLY", "main_file_name" : "ensamble_suicide.asm.1", "source" : "temp", "file" : "binary(二进制文件流)" } 装配体上传-分片上传(初始化阶段) /basic/coremgr/public/api/v1/drawing/upload { "name" : "engine_teste_02总装.asm.1.zip", "check_code" : "a4a3e7aca08918a148c52ffee862add3c78ac57c204847f91151297ce211a58a", "is_chunked" : true, "chunk_total" : 25, "type" : "ASSEMBLY", "main_file_name" : "engine_teste_02总装.asm.1", "source" : "temp", "request_type" : "init" } 装配体上传-分片上传(上传阶段) /basic/coremgr/public/api/v1/drawing/upload { "name" : "engine_teste_02总装.asm.1.zip", "check_code" : "a4a3e7aca08918a148c52ffee862add3c78ac57c204847f91151297ce211a58a", "is_chunked" : true, "chunk_total" : 25, "type" : "ASSEMBLY", "main_file_name" : "engine_teste_02总装.asm.1", "source" : "temp", "request_type" : "upload", "id" : "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8", "file" : "binary(二进制文件流)", "chunk_index" : 1 }
  • 响应示例 状态码:200 零件上传-单片上传 { "result_code": "PUB-000000", "result_info": "success", "datas": { "id": "ef9a97c7-6344-4118-8486-612d10fdf2e4", "name": "4903N12.STEP", "is_chunked": false, "chunk_total": 0, "status": "UPLOADING", "type": "PART", "create_time": "2024-06-21 09:22:30", "file_lightweight_task_result": { "file_id": "ef9a97c7-6344-4118-8486-612d10fdf2e4", "file_name": "4903N12.STEP", "status": "UPLOADING", "task_id": "3d02ef30-0e56-43c0-ab0a-5d6bca5ab7ba", "create_time": "2024-06-21 09:22:30" } } } 零件上传-分片上传(初始化阶段) { "result_code": "PUB-000000", "result_info": "success", "datas": { "id": "4f2bddfa-dee7-4858-b41c-34705e9642a3" "name" : "010758215.stp", "is_chunked": true, "chunk_total": 29, "status": "UPLOADING", "type": "PART", "create_time": "2024-06-21 10:18:10", "file_lightweight_task_result":{ "file_id": "4f2bddfa-dee7-4858-b41c-34705e9642a3", "file_name": "010758215.stp", "status": "UPLOADING", "task_id": "3bfe5727-ec30-4539-bbc0-4be54fbdaee2", "create_time": "2024-06-21 10:18:10" } } } 零件上传-分片上传(上传阶段) { "result_code": "PUB-000000", "result_info": "success", "datas": { "id": "4f2bddfa-dee7-4858-b41c-34705e9642a3", "name": "010758215.stp", "is_chunked": true, "chunk_total": 29, "status": "UPLOADING", "type": "PART", "create_time": "2024-06-21 10:18:10", "file_lightweight_task_result": { "file_id": "4f2bddfa-dee7-4858-b41c-34705e9642a3", "file_name": "010758215.stp", "status": "UPLOADING", "task_id": "3bfe5727-ec30-4539-bbc0-4be54fbdaee2", "create_time": "2024-06-21 10:18:10" } } } 装配体-单片上传 { "result_code": "PUB-000000", "result_info": "success", "datas": { "id": "4466cc07-1b58-42d1-a0e7-748ef8f59204", "name": "ensamble_suicide.zip", "status": "UPLOADING", "is_chunked": false, "chunk_total": 0, "source": "temp", "type": "ASSEMBLY", "file_lightweight_task_result": { "file_id": "4466cc07-1b58-42d1-a0e7-748ef8f59204", "file_name": "ensamble_suicide.zip", "status": "UPLOADING", "task_id": "c06edf2b-a1e1-4f15-bbf3-3bfae556b8b9", "create_time": "2024-06-21 14:21:11" } } } 装配体-分片上传(初始化阶段) { "result_code": "PUB-000000", "result_info": "success", "datas": { "id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8", "name": "engine_teste_02总装.asm.1.zip", "status": "UPLOADING", "is_chunked": true, "chunk_total": 25, "source": "temp", "type": "ASSEMBLY", "create_time": "2024-06-21 14:11:16", "file_lightweight_task_result": { "file_id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8", "file_name": "engine_teste_02总装.asm.1.zip", "status": "UPLOADING", "task_id": "bd0f7935-d7a1-4d0a-8aa7-e742d80e984d", "create_time": "2024-06-21 14:11:16" } } } 装配体-分片上传(上传阶段) { "result_code": "PUB-000000", "result_info": "success", "datas": { "id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8", "name": "engine_teste_02总装.asm.1.zip", "status": "UPLOADING", "is_chunked": true, "chunk_total": 25, "source": "temp", "type": "ASSEMBLY", "create_time": "2024-06-21 14:11:16", "file_lightweight_task_result": { "file_id": "f1afbc15-b4db-4ff6-9bd4-80160a4f1bf8", "file_name": "engine_teste_02总装.asm.1.zip", "status": "UPLOADING", "task_id": "bd0f7935-d7a1-4d0a-8aa7-e742d80e984d", "create_time": "2024-06-21 14:11:16" } } } 状态码: 400 错误响应 示例一: { "error_code" : "01090001", "error_msg" : "系统错误,请联系管理员!" } 示例二: { "error_code" : "01099901", "error_msg" : "请求参数无效!" } 示例二: { "error_code" : "01099902", "error_msg" : "认证失败!" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id String 文件id 最小长度:36 最大长度:40 name String 文件名称 最小长度:2 最大长度:512 status String 上传状态: 上传中UPLOADING/上传完成SUC CES S/上传失败FAILED 枚举值: UPLOADING SUCCESS FAILED is_chunked Boolean 是否分片:true,false chunk_total Integer 分片总数 最小值:0 最大值:1000 source String 来源 最小长度:1 最大长度:255 type String 文件类型:PART,ASSEMBLY 枚举值: PART ASSEMBLY create_time String 创建时间 最小长度:1 最大长度:30 update_time String 更新时间 最小长度:0 最大长度:30 file_lightweight_task_result FileLightweightTaskResultRspVo object 文件轻量化转换任务Vo对象 file_chunk_upload_result Array of FileChunkUploadRspVo objects 文件分片上传响应Vo对象 数组长度:0 - 1000 表4 FileLightweightTaskResultRspVo 参数 参数类型 描述 file_id String 文件id 最小长度:36 最大长度:40 file_name String 文件名称 最小长度:2 最大长度:255 status String 轻量化状态:UPLOADING,UNMOUNTED,MOUNTING,SUCCESS,FAILED 枚举值: UPLOADING UNMOUNTED MOUNTING SUCCESS FAILED failed_reason String 失败原因 最小长度:0 最大长度:500 task_id String 轻量化任务id 最小长度:1 最大长度:40 create_time String 创建时间 最小长度:1 最大长度:30 update_time String 更新时间 最小长度:0 最大长度:30 lightweight_file_path String 轻量化文件路径 最小长度:0 最大长度:500 表5 FileChunkUploadRspVo 参数 参数类型 描述 chunk_id String 文件分片id 最小长度:36 最大长度:40 chunk_status String 上传状态: 上传中UPLOADING/上传完成SUCCESS/上传失败FAILED 枚举值: UPLOADING SUCCESS FAILED chunk_index Integer 分片索引 最小值:0 最大值:1000 create_time String 创建时间 最小长度:1 最大长度:30 update_time String 更新时间 最小长度:0 最大长度:30 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • 功能介绍 该API用于上传一个图纸文件并对该文件执行轻量化转换。 上传方式主要分为两种:单片上传和分片上传。 单片上传:文件较小时可以采用该方式进行上传。 分片上传:文件较大时可以采用分片上传,分片上传时分为两个阶段:初始化阶段和上传阶段。 初始化阶段:获取已上传的分片文件信息,如果该文件未上传过,则执行文件上传初始化相关的动作,包括生成文件上传信息和文件轻量化任务信息。 上传阶段:根据初始化阶段获取的已上传的分片文件,将未上传的分片文件进行上传即可。如果该文件是第一次上传,则需要上传全部分片;如果第一次未能成功上传全部分片,则该阶段只上传未成功上传的分片文件即可;如果该文件之前已经成功上传过,则该阶段可以直接跳过。上传时不同分片之间可以并行上传。 文件类型分为两种:零件和装配体。 零件:如果是零件直接上传即可。 装配体:如果是装配体文件,则需要将装配体主文件以及子件打包成一个zip格式的压缩包,并且压缩包文件名必须和主文件名保存一致,否则系统无法识别主文件也就无法成功转换。如果装配体比较大采用分片上传方式时,在上传阶段必须将分片后缀名修改为.chunk格式。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Authorization 是 String 机机认证token,获取token请参考链接。 表2 请求Body参数 参数 是否必选 参数类型 描述 file 是 Binary 文件 最小长度:1 最大长度:1073741824 id 否 String 文件id 最小长度:2 最大长度:64 name 是 String 文件名称 最小长度:2 最大长度:255 check_code 是 String 校验码 最小长度:2 最大长度:255 is_chunked 是 Boolean 是否分片:true,false request_type 否 String 请求类型:init,upload 枚举值: init upload chunk_total 否 Integer 分片总数 最小值:0 最大值:1000 chunk_index 否 Integer 分片索引 最小值:0 最大值:1000 source 是 String 来源 最小长度:1 最大长度:255 type 是 String 文件类型:PART,ASSEMBLY 枚举值: PART ASSEMBLY main_file_name 否 String 装配体主文件名 最小长度:0 最大长度:255
  • 约束限制 模型转换当前只支持Ascend芯片类型。 模型转换当前仅支持原始框架类型为Caffe和Tensorflow的模型转换。当原始框架类型为Caffe时,输入数据类型为FLOAT;当原始框架类型为Tensorflow时,输入数据类型为INT32、BOOL、UINT8、FLOAT。 ModelArts提供了转换模板供用户选择,只能选择对应模板进行转换,支持的模板描述,请参见转换模板。 针对用于Ascend芯片的模型转换,其转换限制说明可参见“昇腾开发者社区”的约束及参数说明。 压缩/转换任务指定的OBS路径,需确保OBS目录与ModelArts在同一区域。 转换后的模型,再导入ModelArts时,需从模板中选择元模型。 支持模型文件类型为onnx的模型转换,转换时会先将其转换为Tensorflow框架的FrozenGraphDef格式,然后再转换为om格式。转换工具要求onnx版本为1.6.0,opset为9+。 当原始框架类型为Caffe时,模型文件(“.prototxt”)和权重文件(“.caffemodel”)的op name、op type必须保持名称一致(包括大小写)。 当原始框架类型为Caffe时,除了top与bottom相同的layer以外(例如BatchNorm,Scale,ReLU等),其他layer的top名称需要与其name名称保持一致。 当原始框架类型为TensorFlow时,支持FrozenGraphDef格式和SavedModel格式。如果是SavedModel格式,转换时会先将其转换为FrozenGraphDef格式,然后再转换为om格式。 不支持动态shape的输入,例如:NHWC输入为[?,?,?,3]多个维度可任意指定数值。模型转换时需指定固定数值。 输入数据最大支持四维,转维算子(reshape、expanddim等)不能输出五维。 模型中的所有层算子除const算子外,输入和输出需要满足“dim!=0”。 模型转换不支持含有训练算子的模型。 量化(uint8)后的模型不支持模型转换。 模型中的算子只支持2D卷积,暂不支持3D卷积。暂不支持多批量转换batch_normalization_1算子和FusedBatchNorm算子。 只支持Caffe算子清单和Tensorflow算子清单中的算子,并需满足算子限制条件。