1
我正在構建一個RNN模型來完成圖像分類。我用一條管道輸入數據。但是它返回張量流RNN實現
ValueError: Variable rnn/rnn/basic_rnn_cell/weights already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at:
我不知道我能做些什麼來解決這個問題,因爲不存在具有輸入管道實現RNN的例子很多。我知道如果我使用佔位符,它會起作用,但我的數據已經是張量的形式。除非我可以用張量填充佔位符,否則我寧願只使用管道。
def RNN(inputs):
with tf.variable_scope('cells', reuse=True):
basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=batch_size)
with tf.variable_scope('rnn'):
outputs, states = tf.nn.dynamic_rnn(basic_cell, inputs, dtype=tf.float32)
fc_drop = tf.nn.dropout(states, keep_prob)
logits = tf.contrib.layers.fully_connected(fc_drop, batch_size, activation_fn=None)
return logits
#Training
with tf.name_scope("cost_function") as scope:
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=train_label_batch, logits=RNN(train_batch)))
train_step = tf.train.MomentumOptimizer(learning_rate, 0.9).minimize(cost)
#Accuracy
with tf.name_scope("accuracy") as scope:
correct_prediction = tf.equal(tf.argmax(RNN(test_image), 1), tf.argmax(test_image_label, 0))
accuracy = tf.cast(correct_prediction, tf.float32)
謝謝你幫我,但我只是得到了另一個錯誤 basic_cell = tf.contrib.rnn.BasicRNNCell(NUM_UNITS的batch_size =,再利用=重用) 類型錯誤:__init __()得到了一個意想不到的關鍵字參數'重複使用' 你知道如何處理嗎?我檢查了那裏的API確實應該有一個稱爲重用tho的參數。 – ALeex
您可能更喜歡將tensorflow版本升級到1.2.0 –
它現在可用!非常感謝。您能否簡要介紹重用機制的工作原理? – ALeex