Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 重新加载会话时失败的预处理错误Tensorflow_Python 3.x_Tensorflow - Fatal编程技术网

Python 3.x 重新加载会话时失败的预处理错误Tensorflow

Python 3.x 重新加载会话时失败的预处理错误Tensorflow,python-3.x,tensorflow,Python 3.x,Tensorflow,出于某种原因,在重新加载我使用tr.train.Saver()训练并保存的模型后,我得到了一个FailedPredicateError。这是我用来重新加载训练模型的会话的代码 def predict_lowres(): tf.reset_default_graph() init_img = self.generator_1(input_text, r = tf.AUTO_REUSE) d = self.discriminator_1(init_img, input_tex

出于某种原因,在重新加载我使用tr.train.Saver()训练并保存的模型后,我得到了一个FailedPredicateError。这是我用来重新加载训练模型的会话的代码

def predict_lowres():
    tf.reset_default_graph()
    init_img = self.generator_1(input_text, r = tf.AUTO_REUSE)
    d = self.discriminator_1(init_img, input_text, is_train = True, r = tf.AUTO_REUSE)
    tensor_img = tf.squeeze(tf.cast(init_img, dtype = tf.uint8))
    with tf.Session() as sess:
        saver = tf.train.import_meta_graph('ckpts/model.ckpt.meta')
        saver.restore(sess, tf.train.latest_checkpoint('ckpts'))
        names = []
        for v in tf.get_default_graph().get_collection('variables'):
            names.append(v.name)
        print(names)
        # init_img = self.generator_1(input_text, r = tf.AUTO_REUSE)
        # tensor_img = tf.squeeze(tf.cast(init_img, dtype = tf.uint8))
        d, np_img = sess.run([d, tensor_img])
        print(d)
        imwrite("output_image_lowres.jpg", self.flip_channel_order(np_img, img_dim = 64))
在使用一些print语句调试代码之后,我实现了以下几点

1) 生成器_1()、鉴别器_1()和列_1()函数中的所有变量都添加到图中

2) 调用saver.restore()时,只有在train_1()函数中声明的变量(即进行培训和实例化saver的函数)才使用以前的值初始化

3) 如果我取消注释上面的两行注释,则不会调用FailedPremissionError,并且生成器_1()和鉴别器_1()中的变量都将初始化,但变量张量的值与它们保存为的值不同

第三个对我来说似乎特别奇怪,因为我没有在这里运行任何变量初始值设定项。如果有人知道saver.restore()函数是如何工作的,以及为什么图中的所有变量都没有按照此处的文档()所建议的那样进行初始化,那么任何帮助都将非常有用

下面是我的完整代码的链接,如果有帮助的话:


谢谢大家!

我认为您没有在使用变量之前初始化它们。大概是这样的:

with tf.Session() as sess:
    tf.run(tf.global_variables_initializer())
有关更多详细信息,请查看此