2017-05-04 11 views
3

我试图从https://www.tensorflow.org/programmers_guide/reading_data 运行示例, :TensorFlow - decode_csv:期望3个字段,但在记录0中有5个,当给出5个默认值时抛出:期望5个字段,但在记录0中有3个

example_data.txt

DESC|manner|How did serfdom develop in and then leave Russia ? 
ENTY|cremat|What films featured the character Popeye Doyle ? 
DESC|manner|How can I find a list of celebrities ' real names ? 
ENTY|animal|What fowl grabs the spotlight after the Chinese Year of the Monkey ? 
             more... 

TensorFlow代码:

import numpy as np 
import tensorflow as tf 

filename_queue = tf.train.string_input_producer(["example_data.txt"]) 
reader = tf.TextLineReader() 
key, value = reader.read(filename_queue) 

record_defaults = [['hello'], ['hello'], ['hello']] 
col1, col2, col3 = tf.decode_csv(
    value, record_defaults=record_defaults, field_delim="|") 
features = tf.stack([col1, col2, col3]) 

print(features) 

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, col2]) 

    coord.request_stop() 
    coord.join(threads) 

这引发错误: Expect 3 fields but have 5 in record 0

,但如果我改变:

record_defaults = [['hello'], ['hello'], ['hello'], ['hello'], ['hello']] 
    col1, col2, col3, col4, col5 = tf.decode_csv(
     value, record_defaults=record_defaults, field_delim="|") 

这将引发一个错误: Expect 5 fields but have 3 in record 0

这是怎么回事?这是TensorFlow中的一个错误吗?

回答

1

当使用tf.decode_csvtf.TextLineReader时,仅仅在文件末尾存在空行会导致类似的错误'期望5个字段,但在记录0中有0'。

同样,您可能希望查看数据文件以查看是否有任何问题,即使它与“空白行”一样微不足道。

相关问题