尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CANN/ge AIPP人工智能预处理

CANN/ge AIPP人工智能预处理 AIPP【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge本节介绍构图过程中如何开启AIPP特性。IPV350不支持AIPP特性。功能介绍AIPPArtificial Intelligence Pre-Processing人工智能预处理用于在AI Core上完成图像预处理包括色域转换转换图像格式、图像归一化减均值/乘系数和抠图指定抠图起始点抠出神经网络需要大小的图片。AIPP区分为静态AIPP和动态AIPP只能二选一不能同时支持。静态AIPP模型编译时设置AIPP模式为静态同时设置AIPP参数模型生成后AIPP参数值被保存在离线模型中每次模型推理过程采用固定的AIPP预处理参数无法修改。动态AIPP模型编译时设置AIPP模式为动态每次模型推理前根据需求在执行模型前设置动态AIPP参数值然后在模型执行时可使用不同的AIPP参数。动态AIPP在根据业务要求改变预处理参数的场合下使用如不同摄像头采用不同的归一化参数输入图片格式需要兼容YUV420和RGB等。关于AIPP功能的详细介绍请参考《ATC离线模型编译工具》。使用方法下面介绍如何在模型构建时支持AIPP功能Data算子输入数据的Channel维度的元素个数和图片实际保持一致。auto shape_data vectorint64_t({ 1,10,12,12 }); // 创建TensorDesc TensorDesc desc_data(ge::Shape(shape_data), FORMAT_NCHW, DT_FLOAT16); // 创建Data算子输入节点 auto data op::Data(data); // 给Data算子的输入张量描述符赋值 data.update_input_desc_x(desc_data); data.update_output_desc_y(desc_data);准备AIPP配置文件配置说明请参考《ATC离线模型编译工具》下面给出一些配置示例静态AIPP配置文件示例aipp_op { aipp_mode:static # 表示静态AIPP input_format:YUV420SP_U8 csc_switch:true var_reci_chn_0:0.00392157 var_reci_chn_1:0.00392157 var_reci_chn_2:0.00392157 }动态AIPP配置文件示例除了以下字段外其他无需配置aipp_op { aipp_mode:dynamic # 表示动态AIPP related_input_rank: 0 # 可选标识对模型的第几个输入做AIPP处理从0开始默认为0 max_src_image_size:752640 # 输入图像最大的size动态AIPP必须配置 }模型编译时在aclgrphBuildModel接口options中设置INSERT_OP_FILE和INPUT_FORMAT。void PrepareOptions(std::mapAscendString, AscendString options) { options.insert({ {ge::ir_option::EXEC_DISABLE_REUSED_MEMORY, 1}, {ge::ir_option::INSERT_OP_FILE, PATH aipp_nv12_img.cfg}, {ge::ir_option::INPUT_FORMAT, NCHW} }); }编译生成的离线模型自动插入aipp算子。使用注意事项如果用户设置了静态AIPP功能同时又通过INPUT_SHAPE设置了动态shape范围参数则如果模型只有一个输入该场景不支持如果模型有多个输入则必须对不同的输入节点进行设置比如一个输入节点设置静态AIPP另外一个节点设置动态shape。如果用户设置了静态AIPP功能同时又通过DYNAMIC_BATCH_SIZE设置了动态分辨率输入图片的宽和高不确定该场景下AIPP配置文件中不能开启Crop和Padding功能并且需要将配置文件中的src_image_size_w和src_image_size_h取值设置为0。如果用户设置了动态AIPP功能同时又通过INPUT_SHAPE设置了动态shape范围参数则AIPP输出的宽和高要在INPUT_SHAPE所设置的范围内。如果用户设置了动态AIPP功能同时又通过DYNAMIC_BATCH_SIZE设置了动态batch_size实际推理时调用aclmdlSetInputAIPP接口设置动态AIPP相关参数值时需确保batch_size要设置为最大Batch数。接口详细说明请参见《GE图引擎 API》中的“C语言接口 模型管理和单算子调用接口 模型管理 模型执行 aclmdlSetInputAIPP”。如果用户设置了动态AIPP功能同时又通过DYNAMIC_IMAGE_SIZE设置了动态分辨率输入图片的宽和高不确定实际推理时调用aclmdlSetInputAIPP接口设置动态AIPP相关参数值时不能开启Crop和Padding功能。该场景下还需要确保通过aclmdlSetInputAIPP接口设置的宽和高与aclmdlSetDynamicHWSize接口设置的宽、高相等都必须设置成动态分辨率最大档位的宽、高。接口详细说明请参见《GE图引擎 API》中的“C语言接口 模型管理和单算子调用接口 模型管理 模型执行”章节。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表