-
參考
-
文件流程
-
csv讀取流程
-
函數的流程
import tensorflow as tf
import os"""tensorflow中csv文件的讀取1、 先找到文件,構造一個列表2、 構造一個文件隊列3、 讀取(read)隊列內容csv: 讀取一行二進制文件: 指定一個樣本的bytes讀取圖片文件: 按一張一張的讀取4、 解碼(decode)tf.decode_csv(records, record_defaults=None,field_delim = None, name=None)5、 批處理(多個樣本)批處理大小,和數量無關.取決于該批次處理數量的大小
"""def csvread(filelist):"""讀取CSV文件:param filelist: 文件路徑 + 名字列表:return: 讀取的內容"""# 1. 構造文件隊列file_queue = tf.train.string_input_producer(filelist)# 2. 構造csv閱讀器讀取reader = tf.TextLineReader()key, value = reader.read(file_queue)# 3. 對每行內容進行解密# record_defaults: 指定每一個樣本額每一列的類型,指定默認值 [["None"], [4.0]]records = [["None"], ["None"]]example, label = tf.decode_csv(value, record_defaults=records)# 4. 想要讀取多個,需要進行批處理example_batch, label_batch = tf.train.batch([example, label], batch_size=9, num_threads=1, capacity=9)print(example_batch, label_batch)return example_batch, label_batchif __name__ == "__main__":# 1、找到文件,放入列表 路徑 + 名字file_name = os.listdir("./data/csvdata/")filelist = [os.path.join("./data/csvdata", file) for file in file_name]# print(file_name)example_batch, label_batch = csvread(filelist)# 開啟會話運行結果with tf.Session() as sess:# 定義一個線程協調器coord = tf.train.Coordinator()# 開啟讀文件的線程threads = tf.train.start_queue_runners(sess, coord=coord)# 打印讀取的內容print(sess.run([example_batch, label_batch]))# 把程序的圖結構寫入事件filewriter = tf.summary.FileWriter("./summary/", graph=sess.graph)# 回收子線程coord.request_stop()coord.join(threads)