tensorflow的資料輸入採用佇列、執行緒的機制,這樣可以使得系統更加輕量。如例項:
#獲取資料的列表
image_list, label_list = read_image_label_list()
images = tf.convert_to_tensor(self.image_list, dtype=tf.string)
labels = tf.convert_to_tensor(self.label_list, dtype=tf.string)
#構建列表輸出的佇列
queue = tf.train.slice_input_producer([self.images, self.labels], shuffle=false)
#這裡得到的queue實際是乙個list,其中包含兩個str,乙個是image,乙個是label,但是這些內容是通過佇列輸出的,所以在啟動佇列之前是沒有輸出的。
image, label = read_images_from_disk(queue )
image_batch, label_batch=tf.train.batch([image, label], batch_size)
#建立乙個協調,用於協調多個執行緒同時開啟關閉
coord = tf.train.coordinator()
sess = tf.session()
#開啟佇列,返回向佇列輸入資料的執行緒
threads = tf.train.start_queue_runners(coord=coord, sess=sess)
sess.run(image_batch, label_batch)
TensorFlow輸入資料處理框架
如圖,大致為輸入資料處理流程示意圖。輸入資料處理第一步為獲取儲存訓練資料的檔案列表,在該圖中檔案列表為。通過tf.train.string input producer函式可以選擇性將檔案順序打亂,並加入輸入佇列。tf.train.string input producer函式會生成並維護乙個輸入檔...
深度學習 TensorFlow 輸入資料處理框架
將mnist資料集中的所有訓練資料儲存到tfrecord檔案中 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data import numpy as np 生成整數型屬性 轉換型別 將輸入...
tensorflow的三種資料輸入
tensorflow的資料讀取一共有三種方式 供給資料 feeding 在tensorflow程式執行的每一步,讓python 來供給資料 從檔案讀取資料 在tensorflow圖的起始,讓乙個輸入管線從檔案中讀取資料 預載入資料 在tensorflow圖中定義常量或變數來儲存所有資料 僅僅適用於資...