Die Standardmethode zum Speichern von Variablen in TensorFlow ist die Verwendung eines Objekts tf.train.Saver
. Standardmäßig speichert sie alle Variablen in Ihrem Problem (dh die Ergebnisse der tf.all_variables()
), aber Sie können, indem man das var_list
optionales Argument an die tf.train.Saver
Konstruktor Variablen selektiv speichern:
weights = {
'wc1_0': tf.Variable(tf.random_normal([5, 5, 3, 64])),
'wc1_1': tf.Variable(tf.random_normal([5, 5, 3, 64]))
}
biases = {
'bc1_0': tf.Variable(tf.constant(0.0, shape=[64])),
'bc1_1': tf.Variable(tf.constant(0.0, shape=[64]))
}
# Define savers for explicit subsets of the variables.
weights_saver = tf.train.Saver(var_list=weights)
biases_saver = tf.train.Saver(var_list=biases)
# ...
# You need a TensorFlow Session to save variables.
sess = tf.Session()
# ...
# ...then call the following methods as appropriate:
weights_saver.save(sess) # Save the current value of the weights.
biases_saver.save(sess) # Save the current value of the biases.
Beachten Sie, dass, wenn Sie übergeben ein Wörterbuch zum tf.train.Saver
Konstruktor (wie die weights
und/oder biases
Wörterbücher aus Ihrer Frage), TensorFlow wird die Wörterbuch-Taste (zB 'wc1_0'
) als Namen für die entsprechende Variable in jedem Kontrollpunkt verwenden, um Dateien es oder verbraucht erstellt .
Standardmäßig wird TensorFlow stattdessen die -Eigenschaft verwenden, wenn Sie dem Konstruktor eine Liste von tf.Variable
-Objekten übergeben.
Das Übergeben eines Wörterbuchs gibt Ihnen die Möglichkeit, Prüfpunkte zwischen Modellen zu teilen, die jeder Variablen verschiedene Variable.name
-Eigenschaften geben. Dieses Detail ist nur wichtig, wenn Sie die erstellten Prüfpunkte mit einem anderen Modell verwenden möchten.
Es gibt einige verschiedene Möglichkeiten, dies zu tun. Sie können einen Tensorflow-Saver verwenden oder Ihr Lieblingsformat wie h5 oder npy verwenden. – jean
danke, ich habe es. – luohao