Ich habe mein LSTM-Modell gebaut. Im Idealfall möchte ich die Variablen wiederverwenden, um später ein Test-LSTM-Modell zu definieren.Tensorflow Variable Wiederverwendung
with tf.variable_scope('lstm_model') as scope:
# Define LSTM Model
lstm_model = LSTM_Model(rnn_size, batch_size, learning_rate,
training_seq_len, vocab_size)
scope.reuse_variables()
test_lstm_model = LSTM_Model(rnn_size, batch_size, learning_rate,
training_seq_len, vocab_size, infer=True)
Der obige Code gibt mir einen Fehler
Variable lstm_model/lstm_vars/W already exists, disallowed. Did you mean to set reuse=True in VarScope?
Wenn ich die Wiederverwendung gesetzt = True wie im folgenden Codeblock gezeigt
with tf.variable_scope('lstm_model', reuse=True) as scope:
ich eine andere Fehlermeldung erhalten
Variable lstm_model/lstm_model/lstm_vars/W/Adam/ does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=None in VarScope?
Als Referenz habe ich appae nden Sie den entsprechenden Modellcode unten. Der entsprechende Abschnitt im LSTM Modell, in dem ich die Gewichte haben
with tf.variable_scope('lstm_vars'):
# Softmax Output Weights
W = tf.get_variable('W', [self.rnn_size, self.vocab_size], tf.float32, tf.random_normal_initializer())
Der entsprechende Abschnitt, wo ich meine Adam Optimierer haben:
optimizer = tf.train.AdamOptimizer(self.learning_rate)
Haben Sie Ihre Variablen initialisieren behebt? –
Ja. Ich habe: init = tf.initialize_all_variables() sess.run (init) – caramelslice