tensorflow读取数据之CSV格式

tensorflow要想用起来,首先自己得搞定数据输入。官方文档中介绍了几种,1.一次性从内存中读取数据到矩阵中,直接输入;2.从文件中边读边输入,而且已经给设计好了多线程读写模型;3.把网络或者内存中的数据转化为tensorflow的专用格式tfRecord,存文件后再读取。

其中,从文件中边读边输入,官方文档举例是用的CSV格式文件。我在网上找了一份代码,修改了一下,因为他的比较简略,我就补充一下遇到的问题

先贴代码

#coding=utf-8import tensorflow as tf

import numpy as np

defreadMyFileFormat(fileNameQueue):

reader = tf.TextLineReader()

key, value = reader.read(fileNameQueue)

record_defaults = [[1], [1], [1]]

col1, col2, col3 = tf.decode_csv(value, record_defaults = record_defaults)

features = tf.pack([col1, col2])

label = col3

return features, label

definputPipeLine(fileNames = ["1.csv","2.csv"], batchSize =4, numEpochs = None):

fileNameQueue = tf.train.string_input_producer(fileNames, num_epochs = numEpochs)

example, label = readMyFileFormat(fileNameQueue)

min_after_dequeue =8

capacity = min_after_dequeue +3 * batchSize

exampleBatch, labelBatch = tf.train.shuffle_batch([example, label], batch_size = batchSize, num_threads = 3, capacity = cap acity, min_after_dequeue = min_after_dequeue)

return exampleBatch, labelBatch

featureBatch, labelBatch = inputPipeLine(["1.csv","2.csv"], batchSize = 4)

with tf.Session() as sess: # Start populating the filename queue.coord = tf.train.Coordinator()

threads = tf.train.start_queue_runners(coord=coord)

# Retrieve a single instance:try:#while not coord.should_stop():

whileTrue:

example, label = sess.run([featureBatch, labelBatch])print example

except tf.errors.OutOfRangeError:

print‘Done reading‘

finally:

coord.request_stop()

coord.join(threads)

sess.close()

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

其中,record_defaults
= [[1],
[1],
[1]]
,是用于指定矩阵格式以及数据类型的,CSV文件中的矩阵,是NXM的,则此处为1XM,[1]中的1 用于指定数据类型,比如矩阵中如果有小数,则为float,[1]应该变为[1.0]。

col1,
col2, col3 = tf.decode_csv(value, record_defaults = record_defaults) , 矩阵中有几列,这里就要写几个参数,比如5列,就要写到col5,不管你到底用多少。否则报错。

tf.pack([col1,
col2]) ,好像要求col1与col2是同一数据类型,否则报错。

我的测试数据

-0.76 15.67 -0.12 15.67
-0.48 12.52 -0.06 12.51
1.33 9.11 0.12 9.1
-0.88 20.35 -0.18 20.36
-0.25 3.99 -0.01 3.99
-0.87 26.25 -0.23 26.25
-1.03 2.87 -0.03 2.87
-0.51 7.81 -0.04 7.81
-1.57 14.46 -0.23 14.46
-0.1 10.02 -0.01 10.02
-0.56 8.92 -0.05 8.92
-1.2 4.1 -0.05 4.1
-0.77 5.15 -0.04 5.15
-0.88 4.48 -0.04 4.48
-2.7 10.82 -0.3 10.82
-1.23 2.4 -0.03 2.4
-0.77 5.16 -0.04 5.15
-0.81 6.15 -0.05 6.15
-0.6 5.01 -0.03 5
-1.25 4.75 -0.06 4.75
-2.53 7.31 -0.19 7.3
-1.15 16.39 -0.19 16.39
-1.7 5.19 -0.09 5.18
-0.62 3.23 -0.02 3.22
-0.74 17.43 -0.13 17.41
-0.77 15.41 -0.12 15.41
0 47 0 47.01
0.25 3.98 0.01 3.98
-1.1 9.01 -0.1 9.01
-1.02 3.87 -0.04 3.87

时间: 2024-08-26 14:25:27

tensorflow读取数据之CSV格式的相关文章

Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,最后一位会被置为0

问题描述: Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,CSV文件该列会用科学计数法表示,即使选择该列,点击数据--.>分列,固定宽度,列数据格式选择文本,最后一位仍然会被置为0. 解决方法: Oracle通过PL/SQL Developer导出数据为CSV格式,新建一个Excel文件,点击数据-->自文本,选择之前导出的CSV文件,文件类型分隔符号,选择逗号,[选中所有列],然后

Python数据写入csv格式文件

(只是传递,基础知识也是根基) Python读取数据,并存入Excel打开的CSV格式文件内! 这里需要用到bs4,csv,codecs,os模块. 废话不多说,直接写代码!该重要的内容都已经注释了,剩下不懂的可以自己查询一下,或者QQ群内问我.QQ群在以往的博客中! 1 #coding:utf-8 2 from bs4 import BeautifulSoup 3 import bs4 4 import os 5 import time 6 import csv 7 import codecs

Nodejs fastCSV 实现数据的csv格式导出

Nodejs实现CSV格式的数据导出 使用的第三方包: fast-csv: npm install fast-csv async: npm install async mysql: npm install mysql 在这个实现中使用mysql数据源将mysql中的数据导入到对应的csv文件中. /** * 实现dump数据到csv文件数据中 * 导出csv数据模版 **/ var config = require('./info.json'); var fs = require("fs&quo

Python,使用pandas保存数据为csv格式的文件

使用pandas对数据进行保存时,可以有两种形式进行保存 一.对于数据量不是很大的文件,可以放到列表中,进行一次性存储. 二.对于大量的数据,可以考虑一边生成,一边存储,可以避免开辟大量内存空间,去往列表中存储数据. 本人才疏学浅,只懂一些表面的东西,如有错误,望请指正! 下面通过代码进行说明 1 import pandas as pd 2 3 4 class SaveCsv: 5 6 def __init__(self): 7 self.clist = [[1,2,3], [4,5,6], [

shell导出mysql数据成csv格式

#!/bin/bash function usage {        echo "Usage: $0 [OPTIONS]               -h  host --optional              -P  port --optional              -u  user              -p  password              -d  dbname              -t  tablename              -o  outpu

Python从数据库读取数据写入json格式文件

#!/usr/bin/python# -*- coding: UTF-8 -*-########################################################################## File Name: addreplace.py# Author: yuhaitao# mail: [email protected]# Created Time: Fri 31 Mar 2017 07:05:13 PM PDT#####################

tensorflow保存数据为.pb格式和加载pb文件

转自:https://blog.csdn.net/u014264373/article/details/79943389 https://blog.csdn.net/fu6543210/article/details/80343345 原文地址:https://www.cnblogs.com/0405mxh/p/11967212.html

TensorFlow中数据读取之tfrecords

关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据. 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况). 对于数据量较小而言,可能一般选择直接将数据加载进内存,然后再分batch输入网络进行训练(tip:使用这种方法时,结合yield 使用更为简洁,大家自己

TensorFlow高效读取数据的方法——TFRecord的学习

关于TensorFlow读取数据,官网给出了三种方法: 供给数据(Feeding):在TensorFlow程序运行的每一步,让python代码来供给数据. 从文件读取数据:在TensorFlow图的起始,让一个输入管线从文件中读取数据. 预加载数据:在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况). 对于数据量较小而言,可能一般选择直接将数据加载进内存,然后再分batch输入网络进行训练(tip:使用这种方法时,结合yeild 使用更为简洁).但是如果数据量较