从保存的元数据中恢复变量

时间:2018-06-29 15:21:43

标签: python-2.7 tensorflow generative-adversarial-network

我正在尝试从训练有素的TF-GAN中恢复变量,但是它一直给我一个FailedPreconditionError,表示我正在尝试使用未初始化的变量。这很奇怪,因为a)我正在从保存的图形中还原,所以我认为我不需要初始化任何东西,b)我想每次尝试使用的未初始化变量的名称。

这是我尝试加载图形的代码的一部分:

def main(_, run_eval_loop=True):
  sess = tf.Session()
  saver = tf.train.import_meta_graph('/tmp/face/model.ckpt-34888.meta', clear_devices=False)
  saver.restore(sess, '/tmp/face/model.ckpt-34888')

  classifier_logits = _get_classifier_logits()
  sess.run(tf.write_file('/tmp/face/clf_outputs.txt', classifier_logits.eval(session=sess)))
  sess.close()

作为参考,这里是_get_classifier_logits():

def _get_classifier_logits(test_record="test_record.txt"):
   test_record = _make_test_record(test_record)
   discriminator_fn = networks.discriminator
   # In order for variables to load, use the same variable scope as in the
   # train job.
   with tf.variable_scope('Discriminator'):
     batch_tensor = _return_test_img_batch(test_record)
     discriminator_labels = discriminator_fn(batch_tensor, is_training=False)

   return discriminator_labels

我通过使用文本编辑器打开它来检查实际的图元文件/tmp/face/model.ckpt-34888.meta,并且所有想被初始化的变量都在那里。

这是确切的错误:

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value Discriminator/Discriminator/Conv/weights_2
 [[Node: Discriminator/Discriminator/Conv/weights_2/read = Identity[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](Discriminator/Discriminator/Conv/weights_2)]]

从保存的图元还原时,为什么我的变量未初始化?

谢谢!

0 个答案:

没有答案