无法使用TensorFlow打印从CSV文件读取的值

无法使用TensorFlow打印从CSV文件读取的值,csv,tensorflow,Csv,Tensorflow,我正在尝试使用TensorFlow读取以下CSV文件(“test.txt”) 然后打印出内容,但没有打印任何内容。我使用的代码是 import tensorflow as tf import os filename_queue = tf.train.string_input_producer(["test.txt"]) reader = tf.TextLineReader() _, csv_row = reader.read(filename_queue) record_defaults =

我正在尝试使用TensorFlow读取以下CSV文件(“test.txt”)

然后打印出内容,但没有打印任何内容。我使用的代码是

import tensorflow as tf
import os

filename_queue = tf.train.string_input_producer(["test.txt"])

reader = tf.TextLineReader()
_, csv_row = reader.read(filename_queue)
record_defaults = [[0], [0], [0]]
val1, val2, val3 = tf.decode_csv(csv_row, record_defaults=record_defaults)
data1 = tf.stack([val1, val2, val3])

init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord)
    while True:
        try:
            data2 = sess.run([data1])
            print(data2)
        except tf.errors.OutOfRangeError:
            break

我相信您得到的结果不一致,因为局部变量尚未初始化
tf.string\u input\u producer
使用一个epoch计数器局部变量,因此它可能会立即达到epoch限制(当然,这里的错误消息可以改进)

使用显式的历元限制(否则它将无限循环)并初始化局部变量,尝试此操作:

import tensorflow as tf

filename_queue = tf.train.string_input_producer(["/tmp/test.txt"], num_epochs=1)

reader = tf.TextLineReader()
_, csv_row = reader.read(filename_queue)
record_defaults = [[0], [0], [0]]
val1, val2, val3 = tf.decode_csv(csv_row, record_defaults=record_defaults)
data1 = tf.stack([val1, val2, val3])

init = tf.group(tf.global_variables_initializer(),
                tf.local_variables_initializer())

with tf.Session() as sess:
    sess.run(init)
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord)
    while True:
        try:
            data2 = sess.run([data1])
            print(data2)
        except tf.errors.OutOfRangeError:
            break

我相信您得到的结果不一致,因为局部变量尚未初始化
tf.string\u input\u producer
使用一个epoch计数器局部变量,因此它可能会立即达到epoch限制(当然,这里的错误消息可以改进)

使用显式的历元限制(否则它将无限循环)并初始化局部变量,尝试此操作:

import tensorflow as tf

filename_queue = tf.train.string_input_producer(["/tmp/test.txt"], num_epochs=1)

reader = tf.TextLineReader()
_, csv_row = reader.read(filename_queue)
record_defaults = [[0], [0], [0]]
val1, val2, val3 = tf.decode_csv(csv_row, record_defaults=record_defaults)
data1 = tf.stack([val1, val2, val3])

init = tf.group(tf.global_variables_initializer(),
                tf.local_variables_initializer())

with tf.Session() as sess:
    sess.run(init)
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord)
    while True:
        try:
            data2 = sess.run([data1])
            print(data2)
        except tf.errors.OutOfRangeError:
            break

您的代码对我来说很好(tensorflow 1.2版)。如何运行它?我有TensorFlow 1.0.1版。我已经试过从PyCharm 2017.1.2中运行代码,也试过从Windows 7命令行的,py文件中运行代码。您的代码对我来说很好(tensorflow 1.2版)。如何运行它?我有TensorFlow 1.0.1版。我已尝试从PyCharm 2017.1.2中运行代码,也尝试从Windows 7命令行的、py文件中运行代码。已解决:我已更新到TenserFlow 1.2.1,并进行了建议的更改。非常感谢。已解决:我更新到TenserFlow 1.2.1并进行了建议的更改。非常感谢。