最近、記事Towards End-to-End Speech Recognition with Deep Convolutional Neural Networksにテンソルフローを使用してcnn + ctcネットワークベースを実装しようとしました。cnn + ctcネットワークでtf.nn.ctc_lossを使用する方法
バッチスペクトログラムデータ(形状:(10,120,155,3)、batch_sizeは10)を畳み込み層10と完全に連結した層3に供給しようとします。したがって、ctcレイヤーを接続する前の出力は2dデータ(シェイプ:(10,1024))です。
テンソルフローライブラリでtf.nn.ctc_loss関数を使用しますが、が生成されます。ValueError:寸法は2でなければならないが、 'transpose'(op: 'Transpose')形状:[?, 1024]、[3]。
エラーは、私の2次元入力データの次元に関連していると思います。 tensorflow公式サイトのctc_loss関数の記述には、形状(batch_size x max_time x num_classes)の3d入力が必要です。
だから、 'num_classes'の余分な次元は何ですか?私のcnn + fc出力データの形状を変更する必要はありますか?
コードを確認するには、https://github.com/mozilla/DeepSpeech/blob/master/DeepSpeech.pyでctc.lossの使用方法を確認してください。特定の問題に関するヘルプを得るには、実際に記述したコードを表示する必要があります。 –