使用tf加载不同网络结构的模型时,由于默认图的设置导致后边加载时可能出现节点不存在的错误提示,如下为先加载resnet的一个网络,然后加载vgg网络时提示的错误信息。
tensorflow.python.framework.errors_impl.NotFoundError: Restoring from checkpoint failed. This is most likely due to a Variable name or other graph key that is missing from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
Key resnet_v1_101/bbox_pred/biases not found in checkpoint
解决方法,每个会话指定独立的图结构,如下。
tfconfig = tf.ConfigProto(allow_soft_placement=True)
tfconfig.gpu_options.allow_growth = True
mygraph = tf.Graph()
mysess = tf.Session(graph=mygraph, config=tfconfig)
mynet=vgg16()
with mygraph.as_default():
mynet.create_architecture("TEST",len(CLASSES),
tag='default', anchor_scales=[8, 16, 32])
saver = tf.train.Saver()
saver.restore(mysess, ckpt_path)
参考文献: