Tensorflow tf.contrib.slim.get_variables_to_restore()不返回值

Tensorflow tf.contrib.slim.get_variables_to_restore()不返回值,tensorflow,tf-slim,Tensorflow,Tf Slim,在代码tf.contrib.slim.get_variables_to_restore()下运行会为所有_变量返回空值[],然后在调用tf.train.Saver时导致失败。详细错误消息如下所示 我遗漏了什么吗 >>> import tensorflow as tf >>> inception_exclude_scopes = ['InceptionV3/AuxLogits', 'InceptionV3/Logits', 'global_step', 'fin

在代码tf.contrib.slim.get_variables_to_restore()下运行会为所有_变量返回空值[],然后在调用tf.train.Saver时导致失败。详细错误消息如下所示

我遗漏了什么吗

>>> import tensorflow as tf
>>> inception_exclude_scopes = ['InceptionV3/AuxLogits', 'InceptionV3/Logits', 'global_step', 'final_ops']
>>> inception_checkpoint_file = '/Users/morgan.du/git/machine-learning/projects/capstone/yelp/model/inception_v3_2016_08_28.ckpt'
>>> with tf.Session(graph=tf.Graph()) as sess:
...     init_op = tf.global_variables_initializer()
...     sess.run(init_op)
...     reader = tf.train.NewCheckpointReader(inception_checkpoint_file)
...     var_to_shape_map = reader.get_variable_to_shape_map()
...     all_vars = tf.contrib.slim.get_variables_to_restore(exclude=inception_exclude_scopes)
...     inception_saver = tf.train.Saver(all_vars)
...     inception_saver.restore(sess, inception_checkpoint_file)
... 
Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
  File "/Users/morgan.du/miniconda2/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 1051, in __init__
    self.build()
  File "/Users/morgan.du/miniconda2/lib/python2.7/site-packages/tensorflow/python/training/saver.py", line 1072, in build
    raise ValueError("No variables to save")
ValueError: No variables to save
>>将tensorflow作为tf导入
>>>inception\u exclude\u scopes=[“接收v3/AuxLogits”、“接收v3/Logits”、“全局步骤”、“最终操作”]
>>>inception_checkpoint_file='/Users/morgan.du/git/machine learning/projects/capstone/yelp/model/inception_v3_2016_08_28.ckpt'
>>>使用tf.Session(graph=tf.graph())作为sess:
...     init_op=tf.global_variables_initializer()
...     sess.run(初始化操作)
...     reader=tf.train.NewCheckpointReader(初始检查点文件)
...     var_to_shape_map=reader.get_variable_to_shape_map()
...     all_vars=tf.contrib.slim.get_variables_to_restore(exclude=inception_exclude_scopes)
...     初始值\u saver=tf.train.saver(所有变量)
...     恢复(sess、初始检查点文件)
... 
回溯(最近一次呼叫最后一次):
文件“”,第7行,在
文件“/Users/morgan.du/miniconda2/lib/python2.7/site packages/tensorflow/python/training/saver.py”,第1051行,在__
self.build()
文件“/Users/morgan.du/miniconda2/lib/python2.7/site packages/tensorflow/python/training/saver.py”,第1072行,内部版本
raise VALUERROR(“无需保存的变量”)
ValueError:没有要保存的变量

这里的问题似乎是您的图形是空的,即它不包含任何变量。您可以使用tf.Session(graph=tf.graph()):在
行上创建一个新的图形,并且以下任何一行都不会创建
tf.Variable
对象

要恢复预先训练的TensorFlow模型,需要执行以下三项操作之一:

  • 通过执行最初用于训练模型的相同Python图形构建代码来重建模型图
  • 加载一个“元图”,其中包含有关如何重构图结构和模型变量的信息。有关如何创建和使用元图的更多详细信息,请参见。元图通常与检查点文件一起创建,通常具有扩展名
    .meta
  • 加载一个“SavedModel”,其中包含一个“元图”。有关更多详细信息,请参阅文档