1

我在链接中的实现之后在 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')

等等....我无法成功恢复它(直到特定层)。张量流版本:0.12r

4

1 回答 1

2

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

于 2017-03-16T08:20:18.037 回答