2017-03-07 2 views
1

Ich versuche zu programmieren und lernen RNN von Grund auf in Tensorflow. Ich habe verstanden, dass wir ein basicRNNCell erstellen und es als rnn (Daten, Eingabe) mit den richtigen Dimensionen bezeichnen müssen. Aber ich bekomme Dimensionsfehler wie unten gezeigtDer Versuch, Variable basic_rnn_cell/Gewichte zu teilen, aber angegebene Form Fehler

Hier ist der Code, den ich geschrieben habe.

x = tf.placeholder(dtype=tf.float32, shape=[2, 4]) # Batchsize: 2, stepsize: 4 
rnn = tf.contrib.rnn.BasicRNNCell(10, reuse=True) 
state = rnn.zero_state(2, dtype=tf.float32) # A matrix of shape [2, 10] 
rnn(x, state) # ERROR OCCURS AT THIS LINE 

with tf.Session() as sess: 
    sess.run(y, feed_dict={x: [[1, 2, 1, 1], [0, 0, 0, 1]]}) 

Und hier ist der Fehler

ValueError: Trying to share variable basic_rnn_cell/weights, but specified shape (14, 10) and found shape (6, 4).

Was mache ich falsch?

Antwort

2

Ich denke, dass Sie mit Ihren Parametern etwas falsch machen. Ich werde hier einen Arbeitscode für Sie melden:

import tensorflow as tf 
batch_size = 2 
seq_len = 4 
rnn_output_dim = 10 

sess = tf.InteractiveSession() 
x = tf.placeholder(dtype=tf.float32, shape=(batch_size, seq_len)) 
rnn_cell = tf.contrib.rnn.BasicRNNCell(rnn_output_dim) 
state = rnn_cell.zero_state(batch_size, dtype=tf.float32) 
output, state = rnn_cell(x, state) 

sess.run(tf.global_variables_initializer()) 

res = sess.run(output, {x: [[1,2,1,1],[0,0,0,1]]}) 

print(res) 
""" 
array([[ 0.21117647, -0.66317081, 0.89524043, -0.54004282, -0.80074871, 
     0.86230665, -0.77558851, 0.46061009, 0.09429809, 0.17166322], 
     [ 0.42703518, -0.18116307, 0.32701704, 0.02224555, -0.39941645, 
     0.10977989, -0.15780419, 0.41289148, 0.35284221, -0.21626833]], dtype=float32) 
""" 
+0

Ich habe zuvor eine RNN mit dem gleichen Namen initialisiert, die einen bestimmten Satz von Gewichten hatte. Irgendwie wird tf einen neuen rnn mit dem gleichen Namen nicht reinitialisieren und ich bekam diesen Fehler. Wie auch immer, danke für die Wiederherstellung meiner Gesundheit. – Yesh

Verwandte Themen