阅读(9k) 书签 (0)

TensorFlow函数教程:tf.nn.ctc_beam_search_decoder

2019-01-31 13:45 更新

tf.nn.ctc_beam_search_decoder函数

tf.nn.ctc_beam_search_decoder(
    inputs,
    sequence_length,
    beam_width=100,
    top_paths=1,
    merge_repeated=True
)

定义在:tensorflow/python/ops/ctc_ops.py.

参见指南:神经网络>连接时间分类(CTC)

对输入中给出的logits执行波束(beam)搜索解码.

注意:这ctc_greedy_decoder是带有top_paths=1和beam_width=1的ctc_beam_search_decoder的特殊情况(但解码器在这种特殊情况下更快).

如果merge_repeated是True,则合并输出波束中的重复类.这意味着如果波束中的连续条目相同,则仅发出第一个条目.也就是说,当顶部路径为时A B B B B,返回值为:

  • A B:如果merge_repeated = True.
  • A B B B B:如果merge_repeated = False.

参数:

  • inputs:3-D float类型的 Tensor,大小为[max_time x batch_size x num_classes],是logits.
  • sequence_length:1-D int32向量,包含序列长度,具有大小[batch_size].
  • beam_width:int标量大于等于0(波束搜索波束宽度).
  • top_paths:int标量大于等于0,小于等于beam_width(控制输出大小).
  • merge_repeated:Boolean,默认值:True.

返回:

元组(decoded, log_probabilities),其中:top_paths长度的列表,其中decoded[j]是SparseTensor,它包含已解码的输出:

decoded[j].indices: Indices matrix (total_decoded_outputs[j] x 2),行存储:[batch, time].

decoded[j].values: Values vector, size (total_decoded_outputs[j]),向量存储波束 j 的解码类.

decoded[j].dense_shape: Shape vector, size (2),形状值为[batch_size, max_decoded_length[j]]

log_probability:一个浮点矩阵(batch_size x top_paths),包含序列对数概率.