我加载并运行保存的模型时程序被阻止

时间:2019-03-19 13:48:31

标签: tensorflow deep-learning

当我尝试加载以tensorflow编写的已保存模型时遇到问题。该代码可用here(代码1)。该代码加载一个预训练的模型,并使用该预训练的模型来计算具有不同输入的结果。保存的模型文件可用here。实际上,保存的模型是通过训练网络而获得的,该网络是pix2pixgan(code2)的变体。

玩具示例就像

myinput_np, mytarget_np, bbox = my_readimg_np('test2.jpg')
#load  gan graph
saver = tf.train.import_meta_graph(checkpoint_path + "model-210000.meta")
gan_graph = tf.get_default_graph()
convert_targets = gan_graph.get_tensor_by_name("convert_inputs/convert_image:0")
myinputs_p = tf.placeholder(tf.float32, shape=[1, 256, 256, 4]) 
mytargets_p = tf.placeholder(tf.float32, shape=[1, 256, 256, 3])
with tf.Session() as sess:
    saver.restore(sess, tf.train.latest_checkpoint(checkpoint_path))
    #coord = tf.train.Coordinator()
    #threads = tf.train.start_queue_runners(sess=sess, coord=coord)
    #load gan weights
    results = sess.run(convert_targets, feed_dict={myinputs_p: myinput_np, mytargets_p: mytarget_np})
    print(convert_targets.name)
    print (results)

当我运行code1加载预训练的模型并使用输入计算结果时,该程序似乎被阻止/挂起。该程序正在运行,但是“ sess.run()”运行时屏幕上没有任何输出。

有人猜测这可能是由tensorlow的读取线程引起的,建议添加

coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord).

添加这两行后,出现错误“ 进程退出代码为-1073741819(0xC0000005)”。

您能帮我吗?您的帮助对我非常重要。非常感谢。

0 个答案:

没有答案