2016-07-04 12 views
0

テンソルフローでLSTMを使用して多層RNNを作成しようとしています。私はUbuntu 14.04でTensorflowバージョン0.9.0とPython 2.7を使用しています。Tensorflow RNNスライスエラー

size = 1000 
config.forget_bias = 1 
and config.num_layers = 3 
cell = rnn_cell.LSTMCell(size,forget_bias=config.forget_bias) 
cell_layers = rnn_cell.MultiRNNCell([cell]*config.num_layers) 
:num_layersが1より大きい

私のコードであれば、私は

rnn_cell.MultiRNNCell([cell]*num_layers) 

を使用する場合

tensorflow.python.framework.errors.InvalidArgumentError: Expected begin[1] in [0, 2000], but got 4000 

しかし、私は次のエラーを得続けます

私はまたリkeがGRU細胞の使用に切り替えることができるようにするが、これは私に同じエラーを与える:

Expected begin[1] in [0, 1000], but got 2000 

私は、明示的にも助けなかった

num_proj = 1000 

を設定しようとしています。

これは私の連結状態の使用と関係がありますか?

`ValueError: Some cells return tuples of states, but the flag state_is_tuple is not set. State sizes are: [LSTMStateTuple(c=1000, h=1000), LSTMStateTuple(c=1000, h=1000), LSTMStateTuple(c=1000, h=1000)]` 

をすべてのヘルプははるかに高く評価されるだろう:私は与え

state_is_tuple=True 

を設定しようとしてきたように!

答えて

0

なぜこれが機能するのかわかりませんが、ドロップアウトラッパーで追加しました。すなわち

if Training: 
    cell = rnn_cell.DropoutWrapper(cell,output_keep_prob=config.keep_prob) 

これで動作します。 これは、LSTMとGRUの両方のセルで機能します。

0

この問題は、GRUセルのレイヤーを増やしたが、初期ベクトルが2倍にならないために発生しています。 initial_vectorのサイズが[batch_size、50]の場合

そしてinitial_vector = tf.concat(1、[initial_vector] * num_layers)

今入力これは、初期ベクトルとしてデコーダに。

関連する問題