2017-04-15 7 views
3

:tf.nnのドキュメントによるとCTC損失InvalidArgumentError:sequence_length(B)<= kerasを通じてtf.nn.ctc_loss使用しようとしているときに、私はこのエラーに(ctc_batch_cost)実行していた時間

InvalidArgumentError (see above for traceback): sequence_length(4) <= 471

を.ctc_loss、入力要件は次のとおりです。

sequence_length(b) <= time for all b

max(labels.indices(labels.indices[:, 1] == b, 2)) <= sequence_length(b) for all b.

私はこれが何であるかb means--何理解に苦労していますし、sequence_length(b)は何ですか?この場合b

答えて

3

はminibatchの各例です。 sequence_length(b)は、この例のタイムスタンプの数です。これは、tf.nn.ctc_lossに渡される引数で指定されます。これは、1次元のテンソルのシーケンス長です。

+0

この場合、「時間」は何を意味しますか? 'sequence_length(b)<=すべてのbの時間 'は、ミニバッチ内の各例のシーケンス長が' time'以下であることを意味します。例を与えるために気をつけますか? –

+2

sequence_lengthは、ミニバッファ内の各シーケンスのサイズを表すテンソルでなければなりません。時間はデータテンソルの2番目の次元です([batch、time、...]として順序付けられます)。これはちょうど各例のシーケンスの長さが時間次元の最大サイズより小さくなるべきであると言います –

+0

したがって、私が通過したレイヤーのために 'time'次元が縮小された' Tensor'を渡すと(例えばmax 'sequence_length'が 'time'ディメンションよりも小さい場合、' ctc_loss'に '' pooling? –

関連する問題