阅读(20.3k) 书签 (0)

TensorFlow中与CRF有关的操作

2018-09-07 13:57 更新

tf.contrib.crf.CrfForwardRnnCell


tf.contrib.crf.CrfForwardRnnCell 类

定义在:tensorflow/contrib/crf/python/ops/crf.py

参考指南:CRF(contrib)

计算线性链 CRF 中的 alpha 值.

属性


  • graph
  • losses
  • non_trainable_variables
  • non_trainable_weights
  • output_size
  • scope_name
  • state_size
  • trainable_variables
  • trainable_weights
  • updates
  • variables

返回所有图层变量/权重的列表.

返回:

变量列表.

weights

返回所有图层变量/权重的列表.

返回:

变量列表.

方法


__init__

__init__ ( transition_params )

初始化 CrfForwardRnnCell.

ARGS:

  • transition_params:二进制的一个 [num_tags,num_tags] 矩阵.该矩阵被扩展为 [1,num_tags,num_tags],以准备在单元内发生的广播求和.

__call__

__call__ (
inputs,
state,
scope = None
)

构建 CrfForwardRnnCell.

ARGS:

  • inputs:一元电位的 [batch_size, num_tags] 矩阵.
  • state:包含以前的 alpha 值的 [batch_size,num_tags] 矩阵.
  • scope:这个单元格的未使用的变量范围.

返回:

new_alphas, new_alphas: 一对 [batch_size, num_tags] 矩阵值, 包含新的 alpha 值.

__deepcopy__

__deepcopy__ (memo)

add_loss

add_loss (
losses,
inputs = None
)

添加损失张量,可能依赖于层输入.

一些损失(例如,活动正则化损失)可能取决于调用层时传递的输入.因此,用复在不同的输入侧的相同的层时a状语从句:b,一些在条目layer.losses可以取决于a状语从句:一些上b.该方法自动跟踪依赖关系.因此,当在不同的输入 a 和 b 上重用同一层时,一些在 layer.losses 中的条目可能有的依赖于 a,有的依赖于 b.此方法自动跟踪依赖项.

该 get_losses_for 方法允许检索与特定输入集相关的损失.

参数:

  • losses:张量的损失或张量的列表/元组.
  • inputs:损失依赖的可选输入张量,必须匹配在创建³³损失时inputs传递给__call__方法的参数.必须匹配在创建损失时传递给 __call__ 方法的输入参数.如果 None 被传递,则假设损失是无条件的, 并将适用于所有的 dataflows 层 (如权重正则化损失).

add_update

add_update (
updatas,
inputs = None
)

添加更新操作,可能依赖于输入层.

权重更新(例如,BatchNormalization 层中移动平均值和方差的更新)可能依赖于调用层时传递的输入.因此, 当在不同的输入 a 和 b 上重用同一层时,一些 layer.updates 中的条目可能有的依赖于 a 有的依赖于 b .此方法自动跟踪依赖项.

该get_updates_for方法允许检索与特定输入集相关的更新.

参数:

  • updates:更新操作,或更新操作的列表/元组.
  • inputs:更新所依赖的可选输入张量,在创建更新时必须匹配传递给 __call__ 方法的输入参数.如果 None 被传递,则更新被假定为无条件的,并将适用于该层的所有数据流.

add_variable

add_variable (
name ,
shape ,
dtype = None ,
initializer = None ,
regularizer = None ,
trainable = True
)

向图层添加一个新的变量,或者获取一个现有的变量;返回它.

参数:

  • name:变量名
  • shape:变量形状.
  • dtype:变量的类型,默认为 self.dtype.
  • initializer:初始值设定实例(可调用).
  • regularizer:正则化实例(可调用).
  • trainable:变量是否应该是层的 “trainable_variables”(例如变量,偏差)或 “non_trainable_variables”(例如 BatchNorm 的意思是偏差)的一部分.

返回:

创建的变量.

apply

apply (
inputs ,
* args ,
** kwargs
)

在输入上应用图层.

这只是包装 self.__call__.

参数:

  • inputs:输入张量.
  • *args:要传递给 self.call 的其他位置变量.
  • ** kwargs:要传递 self.call 的附加关键字参数.

返回:

输出张量(S).

build

build( _ )

call

call(
inputs,
** kwargs
)

层的逻辑存在在这里.

参数:

  • inputs:输入张量(s).
  • ** kwargs:附加的关键字参数.

返回:

输出张量(S).

get_losses_for

get_losses_for (inputs)

检索与特定输入集相关的损失.

参数:

  • inputs:输入张量或输入张量的列表/元组.必须匹配在创建损失时传递给 __call__ 方法的输入参数.如果您通过 inputs = None,则无条件的损失返回,例如权重正则化损失.

返回:

依赖输入的层的损失张量列表.

get_updates_for

get_updates_for (inputs)

检索与特定输入集相关的更新.

参数:

  • inputs:输入张量或输入张量的列表/元组.必须匹配在创建更新时传递给 __call__ 方法的输入参数.如果传递 inputs = None,则返回无条件更新.

返回:

依赖于输入的层的更新操作列表.

zero_state

zero_state (
batch_size ,
dtype
)

返回零填充状态张量.

ARGS:

  • batch_size:表示批量大小的 int,float 或 unit Tensor.
  • dtype:用于状态的数据类型.

返回:

如果 state_size 是 int 或 TensorShape,则返回值是用零填充的形式 [batch_size x state_size] 的一个N维向量.
如果 state_size 是嵌套列表或元组,则返回值是2维张量的嵌套列表或元组 (同一结构),其形式 [batch_size x s] 用于 state_size 中的每个 s.

tf.contrib.crf.crf_binary_score


crf_binary_score (
tag_indices ,
sequence_lengths ,
transition_params
)

定义在:tensorflow/contrib/crf/python/ops/crf.py

参考指南:CRF(contrib)

计算 CRF 中标签序列的二进制分数.

ARGS:

  • tag_indices:标签索引的 [batch_size, max_seq_len] 矩阵.
  • sequence_lengths:真正序列长度的 [batch_size] 向量.
  • transition_params:二进制电位的 [num_tags,num_tags] 矩阵.

返回:

  • binary_scores:二进制分数的 [batch_size] 向量.

tf.contrib.crf.crf_log_likelihood


crf_log_lmelihood (
inputs ,
tag_indices ,
sequence_lengths ,
transition_params = None
)

定义在:tensorflow/contrib/crf/python/ops/crf.py.

参见指南:CRF(contrib)

计算 CRF 中标签序列的对数似然.

ARGS:

  • inputs:用作 CRF 层输入的一元电位 [batch_size,max_seq_len,num_tags] 张量.
  • tag_indices:我们计算对数似然的标签索引的 [batch_size,max_seq_len] 矩阵.
  • sequence_lengths:真正序列长度的 [batch_size] 矢量.
  • transition_params:一个 [num_tags,num_tags] 转换矩阵,如果可用.

返回:

  • log_likelihood:包含给定序列标签索引的对数似然的标量.
  • transition_params:一个 [num_tags,num_tags] 转换矩阵.这是由调用者提供或在此函数中创建的.

tf.contrib.crf.crf_log_norm


crf_log_norm (
inputs ,
sequence_lengths ,
transition_params
)

定义在:tensorflow/contrib/crf/python/ops/crf.py

参考指南:CRF(contrib)

计算CRF的标准化.

ARGS:

  • inputs:用作CRF层输入的一元电位的 [batch_size,max_seq_len,num_tags] 张量.
  • sequence_lengths:真正序列长度的 [batch_size] 向量.
  • transition_params:一个 [num_tags,num_tags] 转换矩阵.

返回:

  • log_norm:用于 CRF 标准化的 [batch_size] 向量.

tf.contrib.crf.crf_sequence_score


crf_sequence_score (
inputs ,
tag_indices ,
sequence_lengths ,
transition_params
)

定义在:tensorflow/contrib/crf/python/ops/crf.py

参考指南:CRF(contrib)

计算标签序列的非规范化分数.

ARGS:

  • inputs:用作 CRF 层输入的一元电位的 [batch_size,max_seq_len,num_tags] 张量.
  • tag_indices:我们计算非规范化分数的 [batch_size,max_seq_len] 矩阵的标签索引.
  • sequence_lengths:真正序列长度的 [batch_size] 向量.
  • transition_params:一个 [num_tags,num_tags] 转换矩阵.

返回:

  • sequence_scores:非规范化序列分数的 [batch_size] 向量.

tf.contrib.crf.crf_unary_score


crf_unary_score (
tag_indices ,
sequence_lengths ,
inputs
)

中定义.tensorflow/contrib/crf/python/ops/crf.py

参考指南:CRF(contrib)

计算标签序列的一元分数.

ARGS:

  • tag_indices:标签索引的 [batch_size,max_seq_len] 矩阵.
  • sequence_lengths:真正序列长度的 [batch_size] 向量.
  • inputs:一元电位的 [batch_size, max_seq_len, num_tags] 张量.

返回:

  • unary_scores:一元分数的 [batch_size] 向量.

tf.contrib.crf.viterbi_decode


viterbi_decode (
score,
transition_params
)

定义在tensorflow/contrib/crf/python/ops/crf.py

参考指南:CRF(contrib)

解码 TensorFlow 之外的标记的最高得分序列.

这只能在测试时使用.

ARGS:

  • score:一元电位的 [seq_len,num_tags] 矩阵.
  • transition_params:二进制电位的 [num_tags,num_tags] 矩阵.

返回:

  • viterbi:包含最高得分标记索引的 [seq_len] 整数列表.
  • viterbi_score:包含维特比序列得分的浮点数.