我目前使用一个监督器,并构建了一个图形来使用TF-slim预训练的权重进行迁移学习。我想知道是否有办法在开始时将检查点模型恢复到多个推理模型中?我的主要担忧是,首先,定义在参考代码中的名称作用域可能会导致预训练变量由于名称不匹配而无法恢复。其次,考虑到我必须使用带有init_fn
的监督器,而该函数只能接受一个恢复变量的保存器,我如何才能使用多个保存器将相同的变量恢复到多个GPU上(如果我真的需要多个保存器的话)。
我有一个想法,或许我可以将变量恢复到一个图形中,让其他GPU使用相同的图形进行训练。然而,第二个GPU的训练是否只有在第一个GPU完成后才会进行呢?但这样的话,我将无法按照原始检查点模型变量名称来恢复权重,除非我编辑检查点权重的名称。
回答:
TensorFlow关于保存和恢复变量的文档指导您使用保存器对象,您可以通过在构造保存器时传入从保存名称到变量对象的字典,指定哪些保存的变量被恢复为哪些模型变量。