paddlespeech.s2t.models.lm.transformer 模块

class paddlespeech.s2t.models.lm.transformer.TransformerLM(n_vocab: int, pos_enc: Optional[str] = None, embed_unit: int = 128, att_unit: int = 256, head: int = 2, unit: int = 1024, layer: int = 4, dropout_rate: float = 0.5, emb_dropout_rate: float = 0.0, att_dropout_rate: float = 0.0, tie_weights: bool = False, **kwargs)[来源]

基础: Layer, LMInterface, BatchScorerInterface

方法

__call__(*inputs, **kwargs)

将self作为一个函数调用。

add_arguments(parser)

向命令行参数解析器添加参数。

add_parameter(name, parameter)

添加一个参数实例。

add_sublayer(name, sublayer)

添加一个子层实例。

apply(fn)

递归地将 fn 应用到每个子层(由 .sublayers() 返回)以及自身。

batch_init_state(x)

获取解码的初始状态(可选).

batch_score(ys, states, xs)

评分新标记批次(必需)。

buffers([include_sublayers])

返回当前层及其子层中的所有缓冲区的列表。

build(n_vocab, **kwargs)

使用 Python 级参数初始化此类。

children()

返回一个迭代器,遍历直接子层。

clear_gradients()

清除此层所有参数的梯度。

create_parameter(shape[, attr, dtype, ...])

为该层创建参数。

create_tensor([name, persistable, dtype])

为该层创建张量。

create_variable([name, persistable, dtype])

为该层创建张量。

eval()

将该层及其所有子层设置为评估模式。

extra_repr()

该层的额外表示,您可以自定义实现自己的层。

final_score(state)

得分 eos(可选)。

forward(x, t)

从缓存序列计算LM损失值。

full_name()

此层的完整名称,由 name_scope + "/" + MyLayer.__class__.__name__ 组成

init_state(x)

获取用于解码的初始状态(可选)。

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)

为层注册一个前向预钩子。

score(y, state, x)

评分新令牌。

select_state(state, i[, new_id])

在主光束搜索中选择具有相对ID的状态。

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

将此层及其所有子层设置为训练模式。

向后

注册状态字典钩子

batch_score(ys: Tensor, states: List[Any], xs: Tensor) Tuple[Tensor, List[Any]][来源]

评分新令牌批次(必需)。

Args:

ys (paddle.Tensor): paddle.int64 前缀标记 (n_batch, ylen). states (List[Any]): 前缀标记的计分器状态。 xs (paddle.Tensor):

生成ys的编码器特征(n_batch,xlen,n_feat)。

Returns:
tuple[paddle.Tensor, List[Any]]: Tuple of

下一个标记的批处理分数,形状为(n_batch, n_vocab),以及 ys 的下一个状态列表。

forward(x: Tensor, t: Tensor) Tuple[Tensor, Tensor, Tensor][来源]

从缓冲序列计算LM损失值。

Args:

x (paddle.Tensor): 输入的 id。 (batch, len) t (paddle.Tensor): 目标 id。 (batch, len)

Returns:
tuple[paddle.Tensor, paddle.Tensor, paddle.Tensor]: Tuple of

损失反向传播(标量),t的负对数似然:-log p(t)(标量)和x中的元素数量(标量)

Notes:

最后两个返回值用于困惑度: p(t)^{-n} = exp(-log p(t) / n)

score(y: Tensor, state: Any, x: Tensor) Tuple[Tensor, Any][来源]

获得新令牌。

Args:

y (paddle.Tensor): 一维 paddle.int64 前缀标记。
state: 前缀标记的评分器状态
x (paddle.Tensor): 生成 ys 的编码器特征。

Returns:
tuple[paddle.Tensor, Any]: Tuple of

用于下一个令牌的paddle.float32分数(n_vocab)以及ys的下一个状态