tf.contrib.slim.get_variables_to_restore() 没有 return 值
tf.contrib.slim.get_variables_to_restore() does not return value
运行 下面的代码 tf.contrib.slim.get_variables_to_restore() return all_vars 的空值 [],然后在调用 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
这里的问题似乎是你的图表是空的——即它不包含任何变量。您在行 with tf.Session(graph=tf.Graph()):
上创建了一个新图形,并且以下行的 none 创建了一个 tf.Variable
对象。
要恢复预训练的 TensorFlow 模型,您需要执行以下三项操作之一:
- 通过执行最初用于训练模型的相同 Python 图构建代码重建模型图。
- 加载一个 "MetaGraph",其中包含有关如何重建图形结构和模型变量的信息。有关如何创建和使用 MetaGraph 的更多详细信息,请参阅 this tutorial。 MetaGraphs 通常与检查点文件一起创建,通常具有扩展名
.meta
.
- 加载一个 "SavedModel",其中包含一个 "MetaGraph"。有关详细信息,请参阅文档 here。
运行 下面的代码 tf.contrib.slim.get_variables_to_restore() return all_vars 的空值 [],然后在调用 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
这里的问题似乎是你的图表是空的——即它不包含任何变量。您在行 with tf.Session(graph=tf.Graph()):
上创建了一个新图形,并且以下行的 none 创建了一个 tf.Variable
对象。
要恢复预训练的 TensorFlow 模型,您需要执行以下三项操作之一:
- 通过执行最初用于训练模型的相同 Python 图构建代码重建模型图。
- 加载一个 "MetaGraph",其中包含有关如何重建图形结构和模型变量的信息。有关如何创建和使用 MetaGraph 的更多详细信息,请参阅 this tutorial。 MetaGraphs 通常与检查点文件一起创建,通常具有扩展名
.meta
. - 加载一个 "SavedModel",其中包含一个 "MetaGraph"。有关详细信息,请参阅文档 here。