数据格式【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv数据格式format是用于描述一个多维Tensor的轴的业务语义表示数据的物理排布格式如1D、2D、3D、4D、5D等一般在CNNConvolutional Neural Networks类的API中需要描述具体的格式。关于aclTensor支持的全量数据格式范围参见《acl APIC》中“数据类型及其操作接口aclFormat”。关于数据格式排布原理介绍参见《Ascend C算子开发指南》中“概念原理和术语神经网络和算子数据排布格式”。使用说明目前大部分算子API都是支持ND数据格式的。例如aclnnAdd接口均标明支持的数据格式是ND即多维Tensor的低维度优先连续排布的规则。对于aclnnConvolution其属于CNN类API要求输入的aclTensor设置具有业务语义的格式而不是ND格式。此类算子在计算过程中需要知道Tensor中的业务语义才可以进行对应的计算。例如2D卷积中需要知道Batch维度、Channel维度、Height维度、Width维度与Tensor维度的对应关系是什么。说明两段式接口参数说明时为简化描述将原始数据格式“ACL_FORMAT_XXXX_”简写为“XXXX”。数据格式中各维度含义NBatch表示批量大小、HHeight表示特征图高度、WWidth表示特征图宽度、CChannels表示特征图通道、DDepth表示特征图深度、LLength表示特征图长度。常见数据格式通过aclCreateTensor接口创建aclTensor时需根据API业务要求设置数据格式当前支持的数据格式有ACL_FORMAT_ND、ACL_FORMAT_NCHW、ACL_FORMAT_NHWC、ACL_FORMAT_HWCN、ACL_FORMAT_NDHWC、ACL_FORMAT_NCDHW、ACL_FORMAT_NC、ACL_FORMAT_NCL。对于非ND的TensorTensor的维度要求与format表述是一致的。例如5D的Tensor要求为ACL_FORMAT_NCDHW、ACL_FORMAT_NDHWC或者ACL_FORMAT_ND如果API参数说明中未标明支持ND设置ND格式后API将会校验报错。4D的Tensor要求为ACL_FORMAT_NCHW、ACL_FORMAT_NHWC、ACL_FORMAT_HWCN或者ACL_FORMAT_ND。3D的Tensor要求为ACL_FORMAT_NCL或者ACL_FORMAT_ND。2D的Tensor要求为ACL_FORMAT_NC或者ACL_FORMAT_ND。其他维度的Tensor要求为ACL_FORMAT_ND。私有数据格式除了上述常见数据格式还存在其他的数据格式比如ACL_FORMAT_NC1HWC0、ACL_FORMAT_FRACTAL_Z、ACL_FORMAT_NC1HWC0_C04、ACL_FORMAT_FRACTAL_NZ、ACL_FORMAT_NDC1HWC0、ACL_FORMAT_FRACTAL_Z_3D等。这些格式属于NPU的一些私有格式当前绝大多数的aclnn API还不支持这些格式。如果有个别API声明了支持的数据格式请以该API实际描述为准。【免费下载链接】ops-cv本项目是CANN提供的图像处理、目标检测相关的算子库实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-cv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考