2016-10-27 12 views
4

私はLSTMネットワークをスピードアップしたいと思いますが、OCR(シーケンスに可変長がある)に使用しているので、私はプレーンなLSTM実装を使用できません。それが私が "tf.nn.dynamic_rnn"を使う理由です。TensorFlow:CudnnLSTMを可変長(dynamic_rnnなど)で使用する方法は?

テンソルフロー(https://github.com/tensorflow/tensorflow/blob/754048a0453a04a761e112ae5d99c149eb9910dd/tensorflow/contrib/cudnn_rnn/python/kernel_tests/cudnn_rnn_ops_benchmark.py#L77)のRNNのベンチマークに基づいて、CUDNNの実装はすべてのモデルを一度に作成するために使用されます(他のものと同様に "tf.nn.rnn"構造は使用されません)。可変長のCUDNNを使用するのはおそらく不可能だと思いますが、誰かが成功するかもしれませんか?

2番目に、「tf.nn.bidirectional_dynamic_rnn」を使用しています。これは、OCRにBi-LSTMを使用したいからです。しかし、これは最初の部分を実装した後で解決する必要があります。

編集:「tf.contrib.cudnn_rnn.CudnnLSTM」の内部に「双方向」実装があります。したがって、CUDNNは可変入力シーケンスで使用できるということは唯一不明です。

「CudnnLSTM」を使用している実例は役に立ちます。

+0

ここCudnnLSTM事業者のためのテストを見てみましょう:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/cudnn_rnn/python/kernel_tests/ cudnn_rnn_ops_test.py。彼らはあなたの質問に答えるのを助けますか? –

答えて

3

はただ、これを見つけた:

tf.contrib.cudnn_rnn.CudnnLSTMは現在ので、これは正常に使用するためのオプションはありませんが、異なる長さの配列を持つバッチをサポートしていません。

出典:http://returnn.readthedocs.io/en/latest/tf_lstm_benchmark.html

関連する問題