1. 程式人生 > >深度學習:tensorflow入門:tf讀入資料

深度學習:tensorflow入門:tf讀入資料

同步讀取資料

import tensorflow as tf

# 模擬一下同步先處理資料,然後才能取訓練資料
# tensorflow中,執行操作有依賴性

# 1、首先定義佇列
Q = tf.FIFOQueue(3, tf.float32)

# 放入一些資料
enq_many = Q.enqueue_many([[0.1, 0.2, 0.3], ])

# 2、定義一些處理資料的螺距,取資料的過程    取資料, +1, 入佇列

out_q = Q.dequeue()

data = out_q + 1

en_q = Q.enqueue(data)

with tf.Session() as
sess: # 初始化佇列 sess.run(enq_many) # 處理資料 for i in range(100): sess.run(en_q) # 訓練資料 for i in range(Q.size().eval()): print(sess.run(Q.dequeue()))

非同步讀取資料

# 模擬非同步子執行緒  存入樣本  主執行緒  讀取樣本

# 1、定義一個佇列, 1000
Q = tf.FIFOQueue(1000, tf.float32)

# 2、定義子執行緒要做的事情 迴圈 值, +1, 放入隊列當中
var = tf.Variable(0.0) # 實現一個自增 tf.assign_add data = tf.assign_add(var, tf.constant(1.0)) en_q = Q.enqueue(data) # 3、定義佇列管理器op,指定多少個子執行緒,子執行緒該幹什麼事情 qr = tf.train.QueueRunner(Q, enqueue_ops=[en_q] * 2) # 初始化變數的op init_op = tf.global_variables_initializer() with tf.Session() as sess: # 初始化變數 sess.
run(init_op) # 開啟執行緒管理器 coord = tf.train.Coordinator() # 真正的開啟子執行緒 threads = qr.create_threads(sess, coord=coord ,start=True) # 主執行緒,不斷讀取資料訓練 for i in range(300): print(sess.run(Q.dequeue())) # 回收執行緒 coord.request_stop() coord.join(threads)