TensorFlow学习(十四):条件随机场CRF
Posted 谢小小XH
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow学习(十四):条件随机场CRF相关的知识,希望对你有一定的参考价值。
参考:
还有一些其他的函数可以到官方文档里面查看和使用.
Ⅰ tf.contrib.crf.crf_log_likelihood
crf_log_likelihood(inputs,tag_indices,sequence_lengths,transition_params=None)
在一个条件随机场里面计算标签序列的log-likelihood
参数:
inputs: 一个形状为
[batch_size, max_seq_len, num_tags]
的tensor,一般使用BILSTM处理之后输出转换为他要求的形状作为CRF层的输入.
tag_indices: 一个形状为[batch_size, max_seq_len]
的矩阵,其实就是真实标签.
sequence_lengths: 一个形状为[batch_size]
的向量,表示每个序列的长度.
transition_params: 形状为[num_tags, num_tags]
的转移矩阵
返回:
log_likelihood: 标量,log-likelihood
transition_params: 形状为[num_tags, num_tags]
的转移矩阵
Ⅱ tf.contrib.crf.viterbi_decode
viterbi_decode(score,transition_params)
通俗一点,作用就是返回最好的标签序列.这个函数只能够在测试时使用,在tensorflow外部解码
参数:
score: 一个形状为
[seq_len, num_tags]
matrix of unary potentials.
transition_params: 形状为[num_tags, num_tags]
的转移矩阵
返回:
viterbi: 一个形状为
[seq_len]
显示了最高分的标签索引的列表.
viterbi_score: A float containing the score for the Viterbi sequence.
Ⅲ.tf.contrib.crf.crf_decode
crf_decode(potentials,transition_params,sequence_length)
在tensorflow内解码
参数:
potentials: 一个形状为
[batch_size, max_seq_len, num_tags]
的tensor,
transition_params: 一个形状为[num_tags, num_tags]
的转移矩阵
sequence_length: 一个形状为[batch_size]
的 ,表示batch中每个序列的长度
返回:
decode_tags:一个形状为
[batch_size, max_seq_len]
的tensor,类型是tf.int32
.表示最好的序列标记.
best_score: 有个形状为[batch_size]
的tensor, 包含每个序列解码标签的分数.
a√b∫yx
以上是关于TensorFlow学习(十四):条件随机场CRF的主要内容,如果未能解决你的问题,请参考以下文章