paddlespeech.t2s.modules.conformer.encoder_layer 模块
编码器自注意力层定义。
- class paddlespeech.t2s.modules.conformer.encoder_layer.EncoderLayer(size, self_attn, feed_forward, feed_forward_macaron, conv_module, dropout_rate, normalize_before=True, concat_after=False, stochastic_depth_rate=0.0)[来源]
基础:
Layer编码器层模块。
- Args:
- size (int):
输入维度。
- self_attn (nn.Layer):
自注意力模块实例。MultiHeadedAttention 或 RelPositionMultiHeadedAttention 实例可以作为参数使用。
- feed_forward (nn.Layer):
前馈模块实例。 PositionwiseFeedForward、MultiLayeredConv1d或Conv1dLinear实例 可以作为参数使用。
- feed_forward_macaron (nn.Layer):
额外的前馈模块实例。PositionwiseFeedForward、MultiLayeredConv1d或Conv1dLinear实例可以作为参数使用。
- conv_module (nn.Layer):
卷积模块实例。ConvlutionModule 实例可以用作参数。
- dropout_rate (float):
dropout 率。
- normalize_before (bool):
是否在第一个模块之前使用层归一化。
- concat_after (bool):
是否连接注意力层的输入和输出。 如果为真,将应用额外的线性变换。 即 x -> x + linear(concat(x, att(x))) 如果为假,则不应用额外的线性变换。即 x -> x + att(x)
- stochastic_depth_rate (float):
跳过此层的概率。
在训练期间,该层可能会跳过残差计算,并以给定概率原样返回输入。
方法
__call__(*inputs, **kwargs)将self作为一个函数调用。
add_parameter(name, parameter)添加一个参数实例。
add_sublayer(name, sublayer)添加一个子层实例。
apply(fn)递归地将
fn应用到每个子层(由.sublayers()返回)以及自身。buffers([include_sublayers])返回当前层及其子层中的所有缓冲区的列表。
children()返回一个迭代器,遍历直接子层。
clear_gradients()清除此层所有参数的梯度。
create_parameter(shape[, attr, dtype, ...])为该层创建参数。
create_tensor([name, persistable, dtype])为该层创建张量。
create_variable([name, persistable, dtype])为该层创建张量。
eval()将该层及其所有子层设置为评估模式。
extra_repr()该层的额外表示,您可以自定义实现自己的层。
forward(x_input, mask[, cache])计算编码特征。
full_name()此层的完整名称,由 name_scope + "/" + MyLayer.__class__.__name__ 组成
load_dict(state_dict[, use_structured_name])从 state_dict 设置参数和可持久化缓存。
named_buffers([prefix, include_sublayers])返回一个迭代器,遍历层中的所有缓冲区,生成名称和张量的元组。
named_children()返回一个直接子层的迭代器,同时提供层的名称和层本身。
named_parameters([prefix, include_sublayers])返回一个迭代器,遍历层中的所有参数,生成名称和参数的元组。
named_sublayers([prefix, include_self, ...])返回Layer中所有子层的迭代器,生成名称和子层的元组。
parameters([include_sublayers])返回当前层及其子层的所有参数的列表。
register_buffer(name, tensor[, persistable])将一个张量注册为该层的缓冲区。
register_forward_post_hook(hook)为层注册一个前向后钩子。
register_forward_pre_hook(hook)为层注册一个前向预钩子。
set_dict(state_dict[, use_structured_name])从 state_dict 设置参数和可持久化的缓冲区。
set_state_dict(state_dict[, use_structured_name])从state_dict设置参数和持久化缓冲区。
state_dict([destination, include_sublayers, ...])获取当前层及其子层的所有参数和可持久化缓冲区。
sublayers([include_self])返回子层的列表。
to([device, dtype, blocking])通过给定的设备、数据类型和阻塞方式转换层的参数和缓冲区。
to_static_state_dict([destination, ...])获取当前层及其子层的所有参数和缓冲区。
train()将此层及其所有子层设置为训练模式。
向后
注册状态字典钩子
- forward(x_input, mask, cache=None)[来源]
计算编码特征。
- Args:
- x_input(Union[Tuple, Tensor]):
输入张量有或没有位置嵌入。 - 有位置嵌入:张量的元组 [(#batch, time, size), (1, time, size)]。 - 没有位置嵌入:张量 (#batch, time, size)。
- mask(Tensor):
输入的掩码张量 (#batch, time)。
缓存 (张量):
- Returns:
- Tensor:
输出张量 (#batch, time, size)。
- Tensor:
掩码张量 (#batch, time)。