paddlespeech.s2t.modules.crf 模块
- class paddlespeech.s2t.modules.crf.CRF(nb_labels: int, bos_tag_id: int, eos_tag_id: int, pad_tag_id: Optional[int] = None, batch_first: bool = True)[来源]
基础:
Layer线性链条件随机场 (CRF).
- Args:
nb_labels (int): 标签集中标签的数量,包括特殊符号。
bos_tag_id (int): 表示句子开始符号的整数你的标签集。
eos_tag_id (int): 整数,表示您的标签集中句子的结束符号。
pad_tag_id (int, optional): 整数,表示您标签集中的填充符号。如果为None,模型将把PAD视为普通标签。否则,模型将对PAD转换施加约束。
batch_first (bool): 第一维是否表示批处理维度。
方法
__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])为该层创建张量。
decode(emissions[, mask])使用维特比算法找到给定发射的最可能的标签序列。
eval()将该层及其所有子层设置为评估模式。
extra_repr()该层的额外表示,您可以自定义实现自己的层。
forward(emissions, tags[, mask])计算负对数似然。
full_name()此层的完整名称,由 name_scope + "/" + MyLayer.__class__.__name__ 组成
load_dict(state_dict[, use_structured_name])从 state_dict 设置参数和可持久化缓存。
log_likelihood(emissions, tags[, mask])计算给定一系列发射分数的标签序列的概率。
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()将此层及其所有子层设置为训练模式。
向后
初始化权重
注册状态字典钩子
- decode(emissions, mask=None)[来源]
使用维特比算法找到给定排放的最可能标签序列。
- Args:
- emissions (paddle.Tensor): Sequence of emissions for each label.
如果 batch_first 为 True,形状为 (batch_size, seq_len, nb_labels),否则为 (seq_len, batch_size, nb_labels)。
- mask (paddle.FloatTensor, optional): Tensor representing valid positions.
如果为None,则所有位置被视为有效。 如果batch_first为True,则形状为(batch_size, seq_len),否则为(seq_len, batch_size)。
- Returns:
- paddle.Tensor: the viterbi score for the for each batch.
形状为 (batch_size,)
列表的列表:每个批次的最佳维特比标签序列。 [B, T]
- forward(emissions: Tensor, tags: Tensor, mask: Optional[Tensor] = None) Tensor[来源]
计算负对数似然。参见 log_likelihood 方法。
- log_likelihood(emissions, tags, mask=None)[来源]
计算给定一系列发射分数的标签序列的概率。
- Args:
- emissions (paddle.Tensor): Sequence of emissions for each label.
如果 batch_first 为 True,形状为 (batch_size, seq_len, nb_labels),否则为 (seq_len, batch_size, nb_labels)。
- tags (paddle.LongTensor): Sequence of labels.
如果 batch_first 为 True,则形状为 (batch_size, seq_len),否则为 (seq_len, batch_size)。
- mask (paddle.FloatTensor, optional): Tensor representing valid positions.
如果为 None,所有的位置都被视为有效。
当 batch_first 为 True 时形状为 (batch_size, seq_len),否则为 (seq_len, batch_size)。
- Returns:
- paddle.Tensor: sum of the log-likelihoods for each sequence in the batch.
形状 ()