TensorFlow - 根据CTC损失层的空白标签索引

时间:2016-07-16 18:38:52

标签: tensorflow speech-recognition recurrent-neural-network

我很难理解SparseTensor标签在实际标签长度之外应该具有的值。因此,对于一个实例,假设我有标签A-Z,索引为0-26,目标标签为:

# 'H','E','L','L','O'
targ1=[7,4,11,11,14] 

# 'N','O'
targ2=[13,14]

sparse = [ [7,4,11,11,14],
           [13,14,0,0,0] ]

在稀疏中,第二批的实际成绩单显示为NOAAA,尽管它只是NO。所以我想知道TensorFlow在计算损失时如何处理这个问题。这不会让网络学会输出不正确的字符序列吗?或者我可以让标签的索引范围在1到27之间,而不是从0到26,因此迫使网络仅在1-27之间输出类,但我不能说服自己,即使这样也能完美地工作。

另外我认为CTC Loss的TensorFlow手册没有提到空白标签的索引被假定为N_Classes - 1,我在这里找到:CTC Loss op。有人可以确认这样的假设是否正确吗?

我请求某人澄清我的疑虑。感谢您的时间和支持。

2 个答案:

答案 0 :(得分:2)

CTC_OPS来源索赔

  

inputs Tensor的最内层尺寸大小num_classes代表     num_labels + 1个类,其中num_labels是真实标签的数量,和     最大值(num_classes - 1)保留给空白标签

答案 1 :(得分:0)

我最近研究过语音识别,张量流中的SparseTensor意味着它会在标签矩阵中添加0,所以0表示no-class,所以我认为{{1}的索引} class为blank-label0为1-27。