aclnnAvgPool2dBackward
产品支持情况
功能说明
接口功能:二维平均池化的反向传播,计算二维平均池化正向传播的输入梯度。
计算公式:假设二位平均池化正向的输入张量为,输出张量为,池化窗口大小为,步长为,则的梯度计算公式为:
各参数意义如下:
- 为损失函数,表示向上取整。
- 表示输入特征图中第行,第列。
- 表示输出特征图中第行,第列的像素值。
- 表示池化窗口的大小。
- 表示步长大小。
- 表示损失函数L对输入特征图中第i行,第j列的像素值的偏导数。
- 表示损失函数对图中第行,列的像素值偏导数。
函数原型
每个算子分为,必须先调用“aclnnAvgPool2dBackwardGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnAvgPool2dBackward”接口执行计算。
[object Object]
[object Object]
aclnnAvgPool2dBackwardGetWorkspaceSize
参数说明:
[object Object]cubeMathType:支持的枚举值如下:
- 0:KEEP_DTYPE,保持输入的数据类型进行计算。
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:当输入数据类型为FLOAT32时不支持该选项。
- 1:ALLOW_FP32_DOWN_PRECISION,支持将输入数据降精度计算。
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:当输入数据类型为FLOAT32时,会转换为FLOAT16计算。当输入为其他数据类型时不做处理。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:当输入数据类型为FLOAT32时,会转换为HFLOAT32计算。当输入为其他数据类型时不做处理。
- 2:USE_FP16,支持将输入降精度至FLOAT16计算。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:当输入数据类型为BFLOAT16时不支持该选项。
- 3:USE_HF32,支持将输入降精度至数据类型HFLOAT32计算。
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:不支持该选项。
- [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:当输入数据类型为FLOAT32时,会转换为HFLOAT32计算。当输入为其他数据类型时不支持该选项。
- 0:KEEP_DTYPE,保持输入的数据类型进行计算。
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnAvgPool2dBackward
约束说明
确定性计算:
- aclnnAvgPool2dBackward默认非确定性实现,支持通过aclrtCtxSetSysParamOpt开启确定性。
[object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:Cube单元不支持FLOAT32计算。当输入为FLOAT32,可通过设置cubeMathType=1(ALLOW_FP32_DOWN_PRECISION)来允许接口内部cast到FLOAT16进行计算。
调用示例
[object Object]