假设我有一个带Y层的模型。
我正在尝试通过将Y-1图层设置为trainable=False
来恢复模型,因此我在定义tf.train.Saver(var_list=list_of_Y-1_layers)
时将所有Y-1图层(变量名称)插入到var_list中,以便可以恢复它们。
我想不恢复最后一层,我想自己训练一下,所以如果我把它变成var_list就会恢复它,如果我不把它放在那里,它就不会在训练期间保存在检查点内
此变量是否会保存在其他位置?或者我在保存/恢复方面做错了什么?
旁注:
要检查是否保存了可训练变量,我使用inspect_checkpoint()
中定义的函数tensorflow/tensorflow/python/tools/inspect_checkpoint.py
答案 0 :(得分:1)
您可以创建两个对象,一个用于保存,另一个用于恢复:
#used to restore:
saver_restore = tf.train.Saver(var_list=list_of_Y-1_layers)
#used to save, will save all variables
saver_save = tf.train.Saver()
答案 1 :(得分:0)
您可以在不指定var_list
的情况下保存整个模型。这将保存检查点中的所有变量。然后,在还原时,您可以为还原保护程序指定var_list
,以仅还原所需的图层子集。
来源: