无法使用TensorFlow打印从CSV文件读取的值
我正在尝试使用TensorFlow读取以下CSV文件(“test.txt”) 然后打印出内容,但没有打印任何内容。我使用的代码是无法使用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 =
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并进行了建议的更改。非常感谢。