簡體   English   中英

tensorflow保存/恢復隊列

[英]tensorflow save/restore queue

從隊列中饋入圖形時,如何使用保存的圖形進行預測?

這是定義圖和入隊/出隊的方法:

X_placeholder = tf.placeholder(tf.int32, [None, FLAGS.max_words], name="X_placeholder")
Y_placeholder = tf.placeholder(tf.int32, [None, output_classes], name="Y_placeholder")
q = tf.FIFOQueue(capacity=1000, dtypes=[tf.int32, tf.int32])
enqueue_op = q.enqueue_many([X_placeholder, Y_placeholder], name="enque_op")
X, Y = q.dequeue()
.......

這是我進行入隊和培訓的方式:

with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        coord = tf.train.Coordinator()
        threads = tf.train.start_queue_runners(coord=coord)

        sess.run(enqueue_op, feed_dict={X_placeholder: X_array, Y_placeholder: Y_array})
        for i in range(100):
            sess.run(optimize, feed_dict=feed)

        coord.request_stop()
        coord.join(threads)

這就是我保存圖表的方式:

saver = tf.train.Saver()
saver.save(sess, checkpoint_path)
gd = sess.graph.as_graph_def()
converted_graph_def = graph_util.convert_variables_to_constants(sess, gd, ["prediction"])
tf.train.write_graph(converted_graph_def, FLAGS.export_dir, 'model' + s + '.pb', as_text=False)

導入此圖后如何運行入隊操作?

我嘗試恢復隊列張量,但無法對其調用“ q.enqueue_many”。

q = graph.get_tensor_by_name('queue/fifo_queue:0')

解決后,您只需在保存的圖形中添加入隊操作即可。

converted_graph_def = graph_util.convert_variables_to_constants(sess, gd, ["prediction", "enqueue_op"])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM