tensorflow--从文件读取数据
程序员文章站
2022-05-25 17:02:08
...
读取数据-csv
tensorflow读取数据流程
- 构造文件队列
- 读取队列内容
reader = tf.TextLineReader()
- 解析成一个样本数据
example, label = tf.decode_csv(value, record_defaults=records)
- 批处理
- 主线程取样本
def csvread(filelist):
"""
读取CSV文件
:param filelist: 文件路径+名字的列表
:return: 读取的内容
"""
# 1、构造文件的队列
# 此操作会隐含地将一个QuenuRunner加入全局图中
file_queue = tf.train.string_input_producer(filelist)
# 2、构造csv阅读器读取队列数据(按一行)(key文件名,value读取的内容)
reader = tf.TextLineReader()
key, value = reader.read(file_queue)
# 3、对每行内容解码,example, label是指我读取的数据的两个特征
# 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)
return example_batch, label_batch
主线程调用:
# 找到指定文件夹下的所有文件,将路径+名字存到列表中
file_name = os.listdir("文件夹路径")
filelist = [os.path.join("文件夹路径", file) for file in file_name]
# 调用函数读取数据
example, label = csvread(filelist)
# 会话
with tf.Session() as sess:
# 线程协调器
coord = tf.train.Coordinator()
# 开启读文件的线程
threads = tf.train.start_queue_runners(sess,coord=coord)
# 打印出来
print(sess.run([example, label]))
#回收子线程
coord.request_stop()
coord.join(threads)
读取数据-图片
tensorflow读取数据流程
- 构造文件队列
- 读取队列内容
tf.WholeFileReader()
- 解析成一个样本数据
image = tf.image.decode_jpeg(value)
- 批处理
- 主线程取样本
def read_pic(file_list):
# 文件队列
file_queue = tf.train.string_input_producer(file_list)
# 读数据
reader = tf.WholeFileReader()
key, value = reader.read(file_queue)
# 解码
image = tf.image.decode_jpeg(value)
# 统一图片大小
image_resize = tf.image.resize_images(image, [300, 200])
# 批处理需要,必须指定通道数
image_resize.set_shape([300,200,3])
# 批处理
image_batch = tf.train.batch([image_resize], batch_size=5)
return image_batch
主线程调用:
# 找到指定文件夹下的所有文件,将路径+名字存到列表中
file_name = os.listdir("文件夹路径")
filelist = [os.path.join("文件夹路径", file) for file in file_name]
# 调用函数读取数据
image = read_pic(file_list)
with tf.Session() as sess:
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess, coord=coord)
print(sess.run(image))
coord.request_stop()
coord.join(threads)
读取数据-二进制
tensorflow读取数据流程
- 构造文件队列
- 读取队列内容
reader = tf.FixedLengthRecordReader(字节数)
- 解析成一个样本数据
content = tf.decode_raw(value, tf.uint8)
- 批处理
- 主线程取样本
def bin_reader(filelist):
"""
读取CSV文件
:param filelist: 文件路径+名字的列表
:return: 读取的内容
"""
# 1、构造文件的队列
# 此操作会隐含地将一个QuenuRunner加入全局图中
file_queue = tf.train.string_input_producer(filelist)
# 2、构造csv阅读器读取队列数据(按一行)(key文件名,value读取的内容)
reader = tf.FixedLengthRecordReader(字节数)
key, value = reader.read(file_queue)
# 3、对每行内容解码,需要指定读取内容的类型
content = tf.decode_raw(value, tf.uint8)
# 4、想要读取多个数据,就需要批处理
content_batch = tf.train.batch([contentl], batch_size=9, num_threads=1, capacity=9)
return example_batch, label_batch
主线程调用:
# 找到指定文件夹下的所有文件,将路径+名字存到列表中
file_name = os.listdir("文件夹路径")
filelist = [os.path.join("文件夹路径", file) for file in file_name]
# 调用函数读取数据
content = bin_reader(filelist)
# 会话
with tf.Session() as sess:
# 线程协调器
coord = tf.train.Coordinator()
# 开启读文件的线程
threads = tf.train.start_queue_runners(sess,coord=coord)
# 打印出来
print(sess.run([contentl]))
#回收子线程
coord.request_stop()
coord.join(threads)
上一篇: excel 生成sql语句
下一篇: SQL批量新增数据
推荐阅读
-
Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)
-
java中读取配置文件中数据的具体方法
-
Spring Boot 从静态json文件中读取数据所需字段
-
asp.net实现数据从DataTable导入到Excel文件并创建表的方法
-
asp.net实现从Txt文件读取数据到数据视图的方法
-
springboot openfeign从JSON文件读取数据问题
-
从Oracle数据库中读取数据自动生成INSERT语句的方法
-
Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)
-
java中读取配置文件中数据的具体方法
-
Spring Boot 从静态json文件中读取数据所需字段