0
私はrnnを構築しています。出力と状態を得るためにtf.nn.dynamic_rnnを使用します。 コードは以下の通りである(TFバージョン1.3):RNNを使用して一連のテンソルを生成
import tensorflow as tf
def lstm_cell():
return tf.contrib.rnn.DropoutWrapper(tf.contrib.rnn.BasicLSTMCell(128), output_keep_prob=0.7)
cell= tf.contrib.rnn.MultiRNNCell([lstm_cell() for _ in range(3)])
initial_state= cell.zero_state(1, tf.float32)
layer = tf.placeholder(tf.float32, [1,1,36])
outputs, state=tf.nn.dynamic_rnn(cell=cell, inputs=layer, initial_state=initial_state)
入力テンソルは、常にバッチサイズ= 1であるので、INITIAL_STATE及び状態もバッチサイズ1 層BATCH_SIZEの入力されました= 1も同様であり、各セルには36個のノード(埋め込まれたシーケンスのサイズ)がある。各レイヤのlstm_sizeは128です。
問題は、rnnセルをループするときに発生します。
rnn_outputs_sequence=outputs
for i in range(1, num_pics, 1):
outputs, state=tf.nn.dynamic_rnn(cell=cell, inputs=outputs, initial_state=state)
rnn_outputs_sequence=tf.concat((rnn_outputs_sequence, outputs),axis=1)
rnn_outputs_sequenceが.However形状[1、num_pics、36]を有することが期待され、これはエラーをトリガ:
Trying to share variable rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel, but specified shape (256, 512) and found shape (164, 512).
私はこのような形状を把握することはできません[164、512]。 誰も私を助けてくれますか?おかげさまで