[英]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.