TensorFlow函数教程:tf.nn.ctc_beam_search_decoder
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)
,包含序列对数概率.