Tensorflow:不恢复,只保存可训练的变量

时间:2017-10-11 11:44:18

标签: python tensorflow neural-network deep-learning

假设我有一个带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

2 个答案:

答案 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,以仅还原所需的图层子集。

来源:

https://www.tensorflow.org/programmers_guide/saved_model#choosing_which_variables_to_save_and_restore

相关问题