Tensorflow中CSV文件读取

Tensorflow中CSV文件读取

    • 前言
    • 创建CSV文件名队列
    • 读取文本
    • 解析内容,将每一列转换为张量
    • 数据训练

版权声明:本文为博主原创文章,未经博主允许不得转载: https://blog.csdn.net/hmmhxh/article/details/99292813

前言

大家好!第一次写博客,经验不足,希望对大家有帮助。
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本) ,下面讲解一下CSV文件读取。

创建CSV文件名队列

应用Tensorflow读取文件中的文件,我们首先需要对需要读取的文件名进行队列处理,我们会用到tf.train.string_input_producer(),其参数内容可自行查看他人博客,有详解(通过调整参数shuffle的bool值可以实现顺序、乱序):
//生成一个先入先出队列和一个QueueRunner,生成文件名队列

filenames = ['A.csv', 'B.csv', 'C.csv'] 
filename_queue = tf.train.string_input_producer(filenames, shuffle=False) 

读取文本

读取CSV文件,通过tf.TextLineReader对象的read方法将CSV文件名队列生成QueueRunner(filename_queue)作为read方法的参数,返回两个值(分别为行号、行内容),将文本文件逐行读取行进来。 若在创建对象时将skip_header_line参数设为1,则读取时将会略过第一行(列名):

reader = tf.TextLineReader(skip_header_lines=1)
key, value = reader.read(filename_queue)

解析内容,将每一列转换为张量

读取内容的返回值value为张量,所以通过tf.decode_csv处理,将读取到的内容解析。

tf.decode_csv(
records,     #行内容张量
record_defaults,   #对应列的默认值(为了防止某些列没有值,如1代表int型,1.0代表float型<也可以是0.03.0>,而‘null’或‘’则是string型)
field_delim=,,
use_quote_delim=True,
name=None,
na_value=’’,
select_cols=None
)

数据训练

将提取的数据进行批量训练。

你可能感兴趣的:(tensorflow)