Tensorflow如何修改保存为检查点的预训练模型

时间:2017-03-15 22:30:50

标签: python tensorflow deep-learning conv-neural-network pre-trained-model

我在link中实施后在Tensorflow中训练了FCN模型并将完整模型保存为检查点,现在我想使用已保存的模型(预训练)来解决不同的问题。 我尝试通过将 Saver 中的权重指定为:

从检查点恢复模型
saver = tf.train.Saver({"weights" : [w1_1,w1_2,w2_1,w2_2,w3_1,w3_2,w3_3,w3_4, w4_1, w4_2, w4_3, w4_4,w5_1,w5_2,w5_3,w6,w7]})

我的体重是:

w1_1=tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,scope='inference/conv1_1_w')

等...... 我无法成功恢复(直到特定图层)。 Tensorflow版本:0.12r

1 个答案:

答案 0 :(得分:2)

您可以调用init = tf.initialize_variables([list_of_vars])后跟sess.run(init),这会为您重新初始化这些变量,或者您可以从要冻结权重但保持不同的点重新创建具有相同结构的图形变量的名称。此外,如果您只想训练某些变量,则只能将这些变量传递给优化器。 tf.train.AdamOptimizer(learning_rate).minimize(loss,var_list = [wi, wj, ....])