paddlespeech.s2t.modules.decoder_layer 模块

解码器自注意力层定义。

class paddlespeech.s2t.modules.decoder_layer.DecoderLayer(size: int, self_attn: Layer, src_attn: Layer, feed_forward: Layer, dropout_rate: float, normalize_before: bool = True, concat_after: bool = False)[来源]

基础: Layer

单解码器层模块。
参数:

size (int): 输入维度。 self_attn (nn.Layer): 自注意力模块实例。

MultiHeadedAttention 实例可以用作参数。

src_attn (nn.Layer): Self-attention module instance.

MultiHeadedAttention 实例可以用作参数。

feed_forward (nn.Layer): Feed-forward module instance.

PositionwiseFeedForward 实例可以作为参数使用。

dropout_rate (float): 抛弃率。

normalize_before (bool):

正确: 在每个子模块之前使用层归一化。
错误: 在每个子模块之后使用层归一化。

concat_after (bool): Whether to concat attention layer's input

和输出。
真:x -> x + linear(concat(x, att(x)))
假:x -> x + att(x)

方法

__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(tgt, tgt_mask, memory, memory_mask)

计算解码特征。参数: tgt (paddle.Tensor):输入张量 (#batch, maxlen_out, size)。 tgt_mask (paddle.Tensor):输入张量的掩码 (#batch, maxlen_out)。 memory (paddle.Tensor):编码的内存 (#batch, maxlen_in, size)。 memory_mask (paddle.Tensor):编码的内存掩码 (#batch, maxlen_in)。 cache (paddle.Tensor):缓存的张量。 (#batch, maxlen_out - 1, size)。 返回: paddle.Tensor:输出张量 (#batch, maxlen_out, size)。 paddle.Tensor:输出张量的掩码 (#batch, maxlen_out)。 paddle.Tensor:编码的内存 (#batch, maxlen_in, size)。 paddle.Tensor:编码的内存掩码 (#batch, maxlen_in)。

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(tgt: Tensor, tgt_mask: Tensor, memory: Tensor, memory_mask: Tensor, cache: Optional[Tensor] = None) Tuple[Tensor, Tensor, Tensor, Tensor][来源]

计算解码特征。

参数:

tgt (paddle.Tensor): 输入张量 (#batch, maxlen_out, size).
tgt_mask (paddle.Tensor): 输入张量的掩码

(#batch, maxlen_out).

memory (paddle.Tensor): Encoded memory

(#batch, maxlen_in, size).

memory_mask (paddle.Tensor): Encoded memory mask

(#batch, maxlen_in).

cache (paddle.Tensor): cached tensors.

(#batch, maxlen_out - 1, size).

Returns:

paddle.Tensor: 输出张量 (#batch, maxlen_out, size)。
paddle.Tensor: 输出张量的掩码 (#batch, maxlen_out)。
paddle.Tensor: 编码后的内存 (#batch, maxlen_in, size)。
paddle.Tensor: 编码后的内存掩码 (#batch, maxlen_in)。