0
저는 rnn을 만들고 tf.nn.dynamic_rnn을 사용하여 출력과 상태를 생성합니다. 다음 코드는 (TF 버전 1.3)는 상기 입력 텐서가 배치 크기 = 1로 항상 때문에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)
상기 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이 형상을 가질 것으로 예상된다 [1 num_pics는 36] .However이 오류를 트리거 :
Trying to share variable rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel, but specified shape (256, 512) and found shape (164, 512).
I이 형상 [164, 512]을 알아낼 수 없다. 누구든지 도와 줄 수 있습니까? 감사합니다. .