У меня проблема с восстановлением некоторых переменных.Я уже восстановил переменные, когда сохранил всю модель на более высоком уровне, но на этот раз я решил восстановить только несколько переменных.Перед первым сеансом я инициализирую веса:
weights = {
'1': tf.Variable(tf.random_normal([n_input, n_hidden_1], mean=0, stddev=tf.sqrt(2*1.67/(n_input+n_hidden_1))), name='w1')
}
weights_saver = tf.train.Saver(var_list=weights)
Затем в сеансе, пока я тренирую NN:
with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess:
[...]
weights_saver.save(sess, './savedModels/Weights/weights')
Затем:
with tf.Session() as sess:
new_saver = tf.train.import_meta_graph(pathsToVariables + 'Weights/weights.meta')
new_saver.restore(sess, pathsToVariables + 'Weights/weights')
weights =
{
'1': tf.Variable(sess.graph.get_tensor_by_name("w1:0"), name='w1', trainable=False)
}
sess.run(tf.global_variables_initializer())
print(sess.run(weights['1']))
Но на этом этапе восстановленные веса кажутся случайными.И действительно, если я сделаю sess.run(tf.global_variables_initializer())
снова, вес будет другим.Как будто я восстановил нормальную функцию инициализации весов, но не обученных весов.
Что я делаю не так?
Понятна ли моя проблема?