我正在尝试将部分代码从使用 tf.compat.v1 转换为纯 tf 函数。这是以前的工作功能,它给了我很好的性能。
self.loss = tf.reduce_mean(
input_tensor=tf.compat.v1.nn.ctc_loss(
labels=self.gt_texts,
inputs=self.ctc_in_3d_tbc,
sequence_length=self.seq_len,
ctc_merge_repeated=True,
)
)
这是我尝试使用 tf.nn.ctc_loss 重写函数。
self.loss = tf.reduce_mean(
input_tensor=tf.nn.ctc_loss(
labels=self.gt_texts, # sparse tensor
logits=self.ctc_in_3d_tbc,
label_length=None,
logit_length=self.seq_len,
blank_index=-1,
))
仅更改此设置后,性能显着下降(63% 准确度到 43% 左右)。我想知道在转换中我做错了什么。使用 blank_index=0 不起作用。