我已经训练了超分辨率神经网络,并节省了重量。现在,在另一个脚本中,我想在还原权重后预测测试集。首先,我需要再次定义模型,以便为每一层分配其相应的权重。但是问题是,在定义模型后,当我恢复权重时,变量将重复且未正确分配。如果我在还原行之后定义了模型,则变量具有不同的名称。
sess = tf.Session()
hr_images_ph = tf.placeholder(tf.float32,[1,256,256,3])
lr_images_ph = tf.placeholder(tf.float32,[1,64,64,3])
prsr_net = Net(hr_images_ph, lr_images_ph,'prsr')
new_saver = tf.train.import_meta_graph('models/final.ckpt-19.meta')
new_saver.restore(sess, 'models/final.ckpt-19')
test_set = DataSet('data/test.txt', 1, mode='test')
hr_images = test_set.get_sample[0]
lr_images = test_set.get_sample[1]
hr_to_feed, lr_to_feed = sess.run([hr_images, lr_images])
loss = sess.run(prsr_net.loss, feed_dict={prsr_net.train: False, hr_images_ph: hr_to_feed, lr_images_ph: lr_to_feed})
代码的最后一行给出了错误,因为它表明存在未初始化的权重。