最近,我尝试使用tensorflow在文章Towards End-to-End Speech Recognition with Deep Convolutional Neural Networks上实现cnn + ctc网络。
我尝试将批量谱图数据(形状:(10,120,155,3),batch_size为10)输入10个卷积层和3个完全连接的层。因此连接ctc层之前的输出是2d数据(形状:(10,1024))。
这是我的问题:我想在tensorflow库中使用tf.nn.ctc_loss函数,但是它会生成 ValueError:Dimension必须为2,但是对于' transpose'(op: ' Transpose')输入形状:[?,1024],[3] 。
我猜这个错误与我的2d输入数据的维度有关。在tensorflow官方网站中描述ctc_loss函数需要一个带有形状的3d输入(batch_size x max_time x num_classes)。
那么,' num_classes'的额外维度是什么? ?我该怎么改变我的cnn + fc输出数据的形状?
答案 0 :(得分:2)
每个时间步应应用完全连接的层。 这就像在递归神经网络中每个时间步长应用相同的密集层。 对于卷积层的输出,时间步长是宽度。
例如,输出形状为:
预计在tensorflow中ctc_loss的形状。