无法加载和保存 TF ckpt 模型 - 没有要保存的变量

时间:2021-01-11 14:17:08

标签: tensorflow machine-learning deep-learning object-detection-api

我正在尝试从 TF 对象检测 API 加载 Tensorflow 检查点,通过附加一些操作来修改它,然后将生成的图形保存到文件中。但是,由于某种原因,它似乎不起作用。 tf.train.Saver 一直抱怨没有变量可以保存。我检查了加载的图形以查看它是否包含变量,并且确实包含变量。所以我不确定为什么会发生错误。

一个最小的例子如下所示:

path = 'path to TF OD API saved checkpoint dir'

tf.reset_default_graph() 
with tf.Session() as sess:   
   new_saver = tf.train.import_meta_graph(os.path.join(path, 'model.ckpt.meta'))   
   new_saver.restore(sess, os.path.join(path, 'model.ckpt'))
   sess.run(tf.global_variables_initializer())
   saver = tf.train.Saver()   
   saver.save(sess, os.path.join(path, 'model2.ckpt'))

错误:

Traceback (most recent call last):
  File "C:/Users/nlmsr/PycharmProjects/optdl/inference/objectdetection_and_tracking/temp.py", line 11, in <module>
    saver = tf.train.Saver()
  File "C:\Users\nlmsr\Anaconda3\envs\optdl\lib\site-packages\tensorflow_core\python\training\saver.py", line 828, in __init__
    self.build()
  File "C:\Users\nlmsr\Anaconda3\envs\optdl\lib\site-packages\tensorflow_core\python\training\saver.py", line 840, in build
    self._build(self._filename, build_save=True, build_restore=True)
  File "C:\Users\nlmsr\Anaconda3\envs\optdl\lib\site-packages\tensorflow_core\python\training\saver.py", line 865, in _build
    raise ValueError("No variables to save")
ValueError: No variables to save

我正在使用 TF1.15,目前无法迁移到 TF2.0。

0 个答案:

没有答案