FusedEcMoE¶
- class paddle.incubate.nn. FusedEcMoe ( hidden_size, inter_size, num_experts, act_type, weight_attr=None, bias_attr=None ) [源代码] ¶
这是一个调用融合算子 fused_ec_moe(参考 fused_ec_moe )。
参数¶
hidden_size (int) - 输入输出的维度。
inter_size (int) - 前馈神经网络中隐藏层的大小。
num_expert (int) - 专家网络的数量。
act_type (string) - 激活函数类型,目前仅支持
gelu
,relu
。weight_attr (ParamAttr,可选) - 指定权重参数属性的对象。默认值:
None
,表示使用默认的权重参数属性,即使用 0 进行初始化。具体用法请参见 ParamAttr 。bias_attr (ParamAttr|bool,可选)- 指定偏置参数属性的对象。如果该参数值是
ParamAttr
,则使用ParamAttr
。如果该参数为bool
类型,只支持为False
,表示没有偏置参数。默认值为 None,表示使用默认的偏置参数属性。具体用法请参见 ParamAttr 。
返回¶
Tensor,输出 Tensor,数据类型与
x
一样。
代码示例¶
# required: gpu
import paddle
from paddle.incubate.nn.layer.fused_ec_moe import FusedEcMoe
x = paddle.randn([10, 128, 1024]) # [bsz, seq_len, d_model]
gate = paddle.randn([10, 128, 8]) # [bsz, seq_len, num_experts]
moe = FusedEcMoe(1024, 4096, 8, act_type="gelu")
y = moe(x, gate)
print(y.shape) # [10, 128, 1024]