TensorFlow------读取CSV文件实例

时间:2023-03-09 00:04:18
TensorFlow------读取CSV文件实例

TensorFlow之读取CSV文件实例:

import tensorflow as tf
import os def csvread(filelist):
'''
读取CSV文件
:param filename: 路径+文件名的列表
: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) # batch_size跟队列,数据的数量没有影响,只决定这批次取多少数据
# 4. 想要读取多个数据,就需要批处理
example_batch,label_batch = tf.train.batch([example,label],batch_size=9,num_threads=1,capacity=9)
# print(example,label)
return example_batch,label_batch if __name__ == '__main__':
# 找到文件,构建列表
filename = os.listdir('./data/csvdata/') # 拼接路径 重新组成列表
filelist = [os.path.join('./data/csvdata/',file) for file in filename] # 调用函数传参
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])) # 回收子线程
coord.request_stop() coord.join(threads)