paddlespeech.s2t.modules.encoder_layer 模块
编码器自注意力层定义。
- class paddlespeech.s2t.modules.encoder_layer.ConformerEncoderLayer(size: int, self_attn: Layer, feed_forward: Optional[Layer] = None, feed_forward_macaron: Optional[Layer] = None, conv_module: Optional[Layer] = None, dropout_rate: float = 0.1, normalize_before: bool = True, concat_after: bool = False)[来源]
基础:
Layer编码器层模块。
方法
__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, mask, pos_emb[, mask_pad, ...])计算编码特征。 参数: x (paddle.Tensor): 输入张量 (#batch, time, size)。 mask (paddle.Tensor): 输入的掩码张量 (#batch, time, time)。 (0,0,0)表示假掩码。 pos_emb (paddle.Tensor): 位置编码,必须在 ConformerEncoderLayer 中不为 None。 mask_pad (paddle.Tensor): 用于卷积模块的批量填充掩码。 (#batch, 1,time),(0, 0, 0)表示假掩码。 att_cache (paddle.Tensor): KEY & VALUE 的缓存张量 (#batch=1, head, cache_t1, d_k * 2),head * d_k == size。 cnn_cache (paddle.Tensor): 在 conformer 层中的卷积缓存 (1, #batch=1, size, cache_t2)。 第一维将不被使用,仅仅是 为 dy2st。 返回: paddle.Tensor: 输出张量 (#batch, time, size)。 paddle.Tensor: 掩码张量 (#batch, time, time)。 paddle.Tensor: att_cache 张量, (#batch=1, head, cache_t1 + time, d_k * 2)。 paddle.Tensor: cnn_cache 张量 (#batch, size, cache_t2)。
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: ~paddle.Tensor, mask: ~paddle.Tensor, pos_emb: ~paddle.Tensor, mask_pad: ~paddle.Tensor = Tensor(shape=[0, 0, 0], dtype=bool, place=Place(cpu), stop_gradient=True, []), att_cache: ~paddle.Tensor = Tensor(shape=[0, 0, 0, 0], dtype=float32, place=Place(cpu), stop_gradient=True, []), cnn_cache: ~paddle.Tensor = Tensor(shape=[0, 0, 0, 0], dtype=float32, place=Place(cpu), stop_gradient=True, [])) Tuple[Tensor, Tensor, Tensor, Tensor][来源]
计算编码特征。 参数:
x (paddle.Tensor): 输入张量 (#batch, time, size). mask (paddle.Tensor): 输入的掩码张量 (#batch, time, time).
(0,0,0) 意味着假面具。
- pos_emb (paddle.Tensor): postional encoding, must not be None
对于ConformerEncoderLayer
- mask_pad (paddle.Tensor): batch padding mask used for conv module.
(#batch, 1,time), (0, 0, 0) 意味着虚假掩码。
- att_cache (paddle.Tensor): Cache tensor of the KEY & VALUE
(#batch=1, head, cache_t1, d_k * 2), head * d_k == size.
- cnn_cache (paddle.Tensor): Convolution cache in conformer layer
(1, #batch=1, size, cache_t2). 第一维将不被使用,仅用于 dy2st。
- Returns:
paddle.Tensor: 输出张量 (#batch, time, size). paddle.Tensor: 掩码张量 (#batch, time, time). paddle.Tensor: att_cache 张量,
(#batch=1, head, cache_t1 + time, d_k * 2).
paddle.Tensor: cnn_cahce 张量 (#batch, size, cache_t2).
- class paddlespeech.s2t.modules.encoder_layer.SqueezeformerEncoderLayer(size: int, self_attn: Layer, feed_forward1: Optional[Layer] = None, conv_module: Optional[Layer] = None, feed_forward2: Optional[Layer] = None, normalize_before: bool = False, dropout_rate: float = 0.1, concat_after: bool = False)[来源]
基础:
Layer编码器层模块。
方法
__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, mask, pos_emb[, mask_pad, ...])计算编码特征。 参数: x (paddle.Tensor):输入张量 (#batch, time, size)。 mask (paddle.Tensor):输入的掩码张量 (#batch, time, time)。 (0,0,0) 表示假的掩码。 pos_emb (paddle.Tensor):位置编码,必须不为 None 对于 ConformerEncoderLayer mask_pad (paddle.Tensor):用于卷积模块的批量填充掩码。 (#batch, 1,time),(0, 0, 0) 表示假的掩码。 att_cache (paddle.Tensor):KEY & VALUE 的缓存张量 (#batch=1, head, cache_t1, d_k * 2),head * d_k == size。 cnn_cache (paddle.Tensor):在 conformer 层中的卷积缓存 (1, #batch=1, size, cache_t2)。 第一个维度将不被使用,仅用于 dy2st。 返回: paddle.Tensor:输出张量 (#batch, time, size)。 paddle.Tensor:掩码张量 (#batch, time, time)。 paddle.Tensor:att_cache 张量, (#batch=1, head, cache_t1 + time, d_k * 2)。 paddle.Tensor:cnn_cache 张量 (#batch, size, cache_t2)。
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: ~paddle.Tensor, mask: ~paddle.Tensor, pos_emb: ~paddle.Tensor, mask_pad: ~paddle.Tensor = Tensor(shape=[0, 0, 0], dtype=bool, place=Place(cpu), stop_gradient=True, []), att_cache: ~paddle.Tensor = Tensor(shape=[0, 0, 0, 0], dtype=float32, place=Place(cpu), stop_gradient=True, []), cnn_cache: ~paddle.Tensor = Tensor(shape=[0, 0, 0, 0], dtype=float32, place=Place(cpu), stop_gradient=True, [])) Tuple[Tensor, Tensor, Tensor, Tensor][来源]
计算编码特征。 参数:
x (paddle.Tensor): 输入张量 (#batch, time, size). mask (paddle.Tensor): 输入的掩码张量 (#batch, time, time).
(0,0,0) 意味着假面具。
- pos_emb (paddle.Tensor): postional encoding, must not be None
对于ConformerEncoderLayer
- mask_pad (paddle.Tensor): batch padding mask used for conv module.
(#batch, 1,time), (0, 0, 0) 意味着虚假掩码。
- att_cache (paddle.Tensor): Cache tensor of the KEY & VALUE
(#batch=1, head, cache_t1, d_k * 2), head * d_k == size.
- cnn_cache (paddle.Tensor): Convolution cache in conformer layer
(1, #batch=1, size, cache_t2)。第一维将不被使用,仅用于dy2st。
- Returns:
paddle.Tensor:输出张量(#batch,时间,大小)。
paddle.Tensor:掩码张量(#batch,时间,时间)。
paddle.Tensor:att_cache 张量,(#batch=1, head, cache_t1 + time, d_k * 2).
paddle.Tensor: cnn_cahce 张量 (#batch, size, cache_t2).
- class paddlespeech.s2t.modules.encoder_layer.TransformerEncoderLayer(size: int, self_attn: Layer, feed_forward: Layer, dropout_rate: float, normalize_before: bool = True, concat_after: bool = False)[来源]
基础:
Layer编码器层模块。
方法
__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, mask, pos_emb[, mask_pad, ...])计算编码特征。 参数: x (paddle.Tensor): (#batch, time, size) mask (paddle.Tensor): 输入的掩码张量 (#batch, time,time), (0, 0, 0) 表示假掩码。 pos_emb (paddle.Tensor): 仅用于与 ConformerEncoderLayer 的接口兼容 mask_pad (paddle.Tensor): 在变换层中未使用, 仅用于与 conformer 的统一 API。 att_cache (paddle.Tensor): KEY & VALUE 的缓存张量 (#batch=1, head, cache_t1, d_k * 2), head * d_k == size. cnn_cache (paddle.Tensor): 在 conformer 层的卷积缓存 (#batch=1, size, cache_t2),在这里未使用,它是为了与 ConformerEncoderLayer 的接口 兼容。 返回: paddle.Tensor: 输出张量 (#batch, time, size)。 paddle.Tensor: 掩码张量 (#batch, time, time)。 paddle.Tensor: att_cache 张量, (#batch=1, head, cache_t1 + time, d_k * 2)。 paddle.Tensor: cnn_cache 张量 (#batch=1, size, cache_t2)。
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: ~paddle.Tensor, mask: ~paddle.Tensor, pos_emb: ~paddle.Tensor, mask_pad: ~paddle.Tensor = Tensor(shape=[0, 0, 0], dtype=bool, place=Place(cpu), stop_gradient=True, []), att_cache: ~paddle.Tensor = Tensor(shape=[0, 0, 0, 0], dtype=float32, place=Place(cpu), stop_gradient=True, []), cnn_cache: ~paddle.Tensor = Tensor(shape=[0, 0, 0, 0], dtype=float32, place=Place(cpu), stop_gradient=True, [])) Tuple[Tensor, Tensor, Tensor, Tensor][来源]
计算编码特征。 参数:
x (paddle.Tensor): (#batch, time, size) mask (paddle.Tensor): 输入的掩码张量 (#batch, time,time),
(0, 0, 0) 意味着假面具。
- pos_emb (paddle.Tensor): just for interface compatibility
到 ConformerEncoderLayer
- mask_pad (paddle.Tensor): does not used in transformer layer,
仅用于与conformer统一的API。
- att_cache (paddle.Tensor): Cache tensor of the KEY & VALUE
(#batch=1, head, cache_t1, d_k * 2), head * d_k == size.
- cnn_cache (paddle.Tensor): Convolution cache in conformer layer
(#batch=1, size, cache_t2),在这里未使用,它是为了与ConformerEncoderLayer的接口兼容。
- Returns:
paddle.Tensor:输出张量(#batch,时间,大小)。 paddle.Tensor:掩码张量(#batch,时间,时间)。 paddle.Tensor:att_cache 张量,
(#batch=1, head, cache_t1 + time, d_k * 2).
paddle.Tensor: cnn_cahce 张量 (#batch=1, size, cache_t2).