TensorFlow - 读取CSV格式文件

TensorFlow - 读取CSV格式文件

flyfish

以TensorFlow提供的例子说明

filename_queue = tf.train.string_input_producer(["file0.csv", "file1.csv"])

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

# Default values, in case of empty columns. Also specifies the type of the
# decoded result.
record_defaults = [[1], [1], [1], [1], [1]]
col1, col2, col3, col4, col5 = tf.decode_csv(
    value, record_defaults=record_defaults)
features = tf.stack([col1, col2, col3, col4])

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

  for i in range(1200):
    # Retrieve a single instance:
    example, label = sess.run([features, col5])

  coord.request_stop()
  coord.join(threads)

API说明concat
代码示例

import tensorflow as tf

t1 = [[1, 2, 3],[4, 5, 6]]
t2 = [[7, 8, 9],[10, 11, 12]]
result =(tf.concat( [t1,t2],0))
sess = tf.Session() 
print(sess.run(result)) 

tf.concat( [t1,t2],0)的结果是

[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]

tf.concat( [t1,t2],1)的结果是

[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]

API说明stack
代码示例

import tensorflow as tf
x =[1, 2]
y= [3, 4]
z= [5, 6]
result =tf.stack([x, y, z],0)

sess = tf.Session() 

print(sess.run(result)) 

tf.stack([x, y, z],0)的结果是

[[1 2]
[3 4]
[5 6]]

tf.stack([x, y, z],1)的结果是
[[1 3 5]
[2 4 6]]

To read text files in comma-separated value (CSV) format, use a
tf.TextLineReader with the tf.decode_csv operation.

读取CSV格式的文本文件, 需要使用TextLineReader和decode_csv 操作

Each execution of read reads a single line from the file. The
decode_csv op then parses the result into a list of tensors. The
record_defaults argument determines the type of the resulting >tensors and sets thedefault value to use if a value is missing in the >input string.

每次执行read都会从文件中读取一行内容, decode_csv 操作会将内容解析到张量列表。record_default参数决定了结果的张量的类型,并设置了如果在输入字符串中缺失值时的默认值。

You must call tf.train.start_queue_runners to populate the queue
before you call run or eval to execute the read. Otherwise read will
block while it waits for filenames from the queue.

你必须在调用run或者eval去执行read之前, 调用tf.train.start_queue_runners来填充队列。否则read操作会阻塞。

你可能感兴趣的:(深度学习,TensorFlow)