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).