aclnnQuantConvolutionWeightNz
产品支持情况
功能说明
接口功能:完成 per-channel 量化的 3D 卷积计算,weight仅支持FRACTAL_Z_3D格式,其中卷积计算过程与 aclnnConvolution 接口一致。
计算公式:
假定输入(input)的 shape 是 ,weight 的 原shape 是 ,scale 的 shape 是 ,bias 的 shape 是 ,输出(output)的 shape 是 ,其中 表示批次大小(batch size), 是通道数,、 和 分别是样本的深度、高度和宽度,、 和 分别是卷积核的深度、高度和宽度,那输出将被表示为:
其中, 表示卷积计算,根据卷积输入的维度,卷积的类型(空洞卷积、分组卷积)而定。 代表批次大小(batch size), 代表通道数,、 和 分别代表深度、高度和宽度,相应输出维度的计算公式如下:
函数原型
每个算子分为[object Object]两段式接口[object Object],必须先调用 aclnnQuantConvolutionWeightNzGetWorkspaceSize 接口获取计算所需 workspace 大小以及包含了算子计算流程的执行器,再调用 aclnnQuantConvolution 接口执行计算。
aclnnQuantConvolutionWeightNzGetWorkspaceSize
参数说明:
[object Object]返回值:
aclnnStatus:返回状态码,具体参见 [object Object]aclnn 返回码[object Object]。
一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnQuantConvolutionWeightNz
参数说明:
[object Object]返回值:
aclnnStatus:返回状态码,具体参见 [object Object]aclnn 返回码[object Object]。
约束说明
确定性计算
- aclnnQuantConvolutionWeightNz默认确定性实现。
调用示例
示例代码如下,仅供参考,具体编译和执行过程请参考 [object Object]编译与运行样例[object Object]。 不同产品型号请参考使用不同的 main 函数。