Tensorflow直接读取CSV文件
2017-02-20 09:46
267 查看
Tensorflow直接读取CSV文件
整理一下tensorflow读取csv文件的基本流程,主要是官方文档中的例子的记录。tensorflow读取csv文件相对pandas要复杂一下,基本过程如下:
产生文件名列表,这里可以一次性用pipline读取一系列csv文件。
建立阅读器,读取原始数据。
解析读出的原始数据,转化成数值数据或指定格式的数据。
开启多线程协调器,启动输入管道。
读取完毕,停止请求。
选取iris数据集测试,iris2.csv是完全一样的一个文件,主要为了验证多文件读取的功能。有4个实数型属性和一个字符串性label。
import tensorflow as tf import numpy as np filename_queue = tf.train.string_input_producer(["./data/iris.csv", "./data/iris2.csv"]) reader = tf.TextLineReader() key, value = reader.read(filename_queue) # key返回的是读取文件和行数信息 b'./data/iris.csv:146' # value是按行读取到的原始字符串,送到下面的decoder去解析 record_defaults = [[1.0], [1.0], [1.0], [1.0], ["Null"]] # 这里的数据类型决定了读取的数据类型,而且必须是list形式 col1, col2, col3, col4, col5 = tf.decode_csv(value, record_defaults=record_defaults) # 解析出的每一个属性都是rank为0的标量 features = tf.stack([col1, col2, col3, col4]) with tf.Session() as sess: coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(coord=coord) for i in range(200): example, label = sess.run([features, col5]) print (example,col5) coord.request_stop() coord.join(threads)
这里有几个点需要注意,代码注释中也已经写明。
文件名列表可以自己生成,也可以手写。
key是文件信息和当前读取的行数,value是原始字符串。
defualt有两个作用,一个是指定当前列的数据类型,一个是替补空值。
按行读取后读出的每个值都是rank为0的标量。
stack函数可以堆叠,组成一个新的tensor,默认axis=0,因此就会横向把前面的标量串成一个rank为1的tensor。
相关文章推荐
- Tensorflow学习笔记之用TF读取csv文件的限制
- Tensorflow直接读取二进制文件
- Python pandas读取csv文件直接转化成二维列表(Dataframe转化为list)
- tensorflow 批量读取csv文件用于做深度学习算法相关
- python读取csv文件、excel文件并封装成dict类型的list,直接看代码
- TensorFlow - 读取CSV格式文件
- CSV文件直接读取
- python 下载或者直接读取csv文件
- MySQL 直接读取csv文件数据到表中
- TensorFlow学习Day3读取csv文件,动手写个logistic,softmax分类模型
- 读取CSV文件到DataTable
- 不经保存,直接读取上传文件的内容
- ASP.NET 直接导入CSV文件到DATASET
- Flash读取XML文件最直接的方法
- 直接读取上传文件的内容
- 在.NET中直接读取,列出和写入文件到ZIP文件中
- 直接读取上传文件的内容
- 直接读取Excel文件数据
- 直接读取文件,和直接排序
- 不用保存直接读取文件内容