2016-11-24 16 views
2

手書き認識の目的でTensorFlowアプリケーションを用意しています。私は積み重ねられたLSTM細胞と終わりにCTCの損失との単純なRNNモデルを使用しています。私は、入力データのためのラベルの準備に関するいくつかの混乱があります。CTC損失のためのTensorFlow(Python)のターゲットラベルの準備

​​、"ab""baccc"(私の場合、ターゲットラベルは文章ではない)という3つの文字列があるとします。だから私はインデックス付きa:0, b:1, c:2, blank:3として3つの文字クラスを持っています。私の知る限り理解されるように、ターゲットラベルの密な表現が

0 3 1 3 2 0 0 0 
0 3 1 0 0 0 0 0 
1 3 0 2 3 2 3 2 

でなければなりません。しかしTensorFlowは、このラベルのスパース表現を必要とする私は、このに関する正しいアム

indices[(0,0),(0,1),(0,2),(0,3),(0,4),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7)] 
values[0,3,1,3,2,0,3,1,1,3,0,2,3,2,3,2] 
shape[3,8] 

としてスパース表現を準備する必要がありますデータ準備?どんな助けも高く評価されます。

答えて

0

これを正しく理解していれば、バッチサイズは3で、異なる長さのバケットターゲットを一緒に使用しています。 CTCが紛失した場合、CTCは長いシーケンスに収束するのに問題があるようですので、サイズ1のバッチを利用することをお勧めします。

密な表現では、短いターゲットを0で埋めているようです。それらは代わりに3でなければなりません(空白)。

最後に、あなたが構築しているスパーステンソルは、私にとって正しいと思われます。次元性に問題がありますか?表示するエラーログがありますか?

+0

ありがとうございます。それは大きな助けになります。私は間違いなくバッチサイズ1を使用します。しかし、ターゲットラベルに関しては、実際には密行列を準備していません。テンソルフローが必要なので、私はそのスパースを直接準備しました。 TFがそれらを0で埋め尽くすと(内部操作として)私は何もできません。私はできますか?しかし、あなたのフィードバックは役に立ちました。 –

関連する問題