tensorflow多執行緒預讀取資料

2021-08-31 10:00:03 字數 823 閱讀 1776

在一般的講解中,tensorflow使用多執行緒讀取資料都會涉及到兩個概念,檔名佇列和檔案佇列。將原本簡單的概念繞的很複雜,而且不同的部落格還相互抄,毫無自己的理解。其實檔名佇列完全沒有必要,只要執行緒能將資料預讀取到檔案佇列,其他的處理咋弄都行。下面是我想到的用法:

import tensorflow as tf

import numpy

import os

import cv2

os.environ['tf_cpp_min_log_level']='2'

img=cv2.imread('./lena_gray.jpg')  #資料讀取,預處理,data argument等等完全可以用python處理

input_img=tf.convert_to_tensor(img)  #將資料處理完後轉化為tensor,便於shuffle_batch使用,不用shuffle_batch的話也可以自己

#定義乙個佇列

img_batch=tf.train.shuffle_batch([input_img],batch_size=2,capacity=200,min_after_dequeue=100,num_threads=2)

sess = tf.session()

init = tf.initialize_all_variables()

sess.run(init)

tf.train.start_queue_runners(sess=sess)   #啟動讀資料的執行緒

for i in range(3):

value=sess.run(img_batch)

print(value.shape)

Tensorflow使用多執行緒

tensorflow的session物件支援多執行緒,可以在同乙個session中建立多個執行緒,預設是cpu有多少個核,就啟動多少個執行緒。tensorflow提供了倆個類來實現對session中多執行緒的管理 tf.coordinator和tf.queuerunner,這倆個類必須一起使用。co...

tensorflow 佇列與多執行緒

1 tensorflow資料輸入簡介 為了避免影象預處理成為神經網路模型訓練效率的瓶頸,tensorflow提供了多執行緒處理輸入資料的框架。流程如下 1 指定原始資料的檔案列表 2 建立檔案列表佇列 3 從檔案中讀取資料 4 資料預處理 5 整理成batch作為神經網路輸入 tensorflow中...

TensorFlow佇列與多執行緒

1 tf.coordinatorimport numpy as np import threading import time import tensorflow as tf 執行緒中執行的程式,這個程式每隔1秒判斷是否需要停止並列印自己的id def myloop coord,worker id ...