FilesLast commitLast update
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
10 months ago
4 months ago
README

ModulateGrad

产品支持情况

产品 是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品 √
Atlas A2 训练系列产品/Atlas A2 推理系列产品 √

功能说明

  • 算子功能:完成Modulate反向传播中参数的计算,进行梯度更新。

  • 计算公式:

    设输入self的shape为[B, L, D]计算公式如下: 公式:

    {grad_x=grad_output⊙(1+scale↑L)grad_scale=∑l=1L(grad_output⊙input)b,l,dgrad_shift=∑l=1Lgrad_outputb,l,d\begin{cases} \text{grad\_x} = \text{grad\_output} \odot \left(1 + \text{scale}^{\uparrow L}\right) \\ \text{grad\_scale} = \sum_{l=1}^{L} (\text{grad\_output} \odot \text{input})_{b,l,d} \\ \text{grad\_shift} = \sum_{l=1}^{L} \text{grad\_output}_{b,l,d} \end{cases}

    符号说明:

    • ⊙\odot: 表示逐元素乘法;
    • ∑l=1L\sum_{l=1}^{L}: 求和操作,沿序列维度LL(即dim=1)进行
    • b,l,db,l,d:下标,表示张量的维度索引(通常为Batch,Length,Dimension)
    • scale↑L\text{scale}^{\uparrow L}:表示将scale张量在序列维度 LL 上进行广播(扩展)

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
grad_output 输入 表示传入的特征张量,公式中的grad_output。 FLOAT、FLOAT16、BFLOAT16 ND
input 输入 表示传入的特征张量,公式中的input。 FLOAT、FLOAT16、BFLOAT16 ND
scale 输入 可选参数,表示缩放的系数,公式中的scale。 FLOAT、FLOAT16、BFLOAT16 ND
shift 输入 可选参数,表示平移的系数,公式中的shift。 FLOAT、FLOAT16、BFLOAT16 ND
grad_input 输出 表示缩放后的输出张量,公式中的grad_input。 FLOAT、FLOAT16、BFLOAT16 ND
grad_scale 输出 表示缩放后的输出张量,公式中的grad_scale。 FLOAT、FLOAT16、BFLOAT16 ND
grad_shift 输出 表示缩放后的输出张量,公式中的grad_shift。 FLOAT、FLOAT16、BFLOAT16 ND

约束说明

无

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_modulatebackward 通过aclnnModulateBackward接口方式调用ModulateGrad算子。