2016-08-17 88 views
0

我正在使用TensorFlow 0.10.0rc0。我在Ubuntu 14.04上有CUDA Driver版本= 7.5和CUDNN 4。Tensorflow CSV解码错误

我有有这样一行简单的CSV文件:在新行已按在VIM在Ubuntu回车键添加

"field with 
newline",0 

。 我可以使用read_csv函数在pandas中读取此文件,其中文本字段显示为包含单个\n字符。

但是当我尝试在TensorFlow读它,我得到以下错误:

tensorflow.python.framework.errors.InvalidArgumentError: Quoted field has to end with quote followed by delim or end 

我张流码读取CSV使用此功能来读取单个行:

def read_single_example(filename_queue, skip_header_lines, record_defaults, feature_index, label_index): 
    reader = tf.TextLineReader(skip_header_lines=skip_header_lines) 
    key, value = reader.read(filename_queue) 
    record = tf.decode_csv(
     value, 
     record_defaults=record_defaults) 
    features, label = record[feature_index], record[label_index] 
    return features, label 

如果我使用pandas读取并用空格替换所有换行符,则TensorFlow代码能够成功解析CSV。

但是,如果在TensorFlow CSV管道内部可以处理换行符,这将非常有帮助。

+0

rfc4180规范声明允许,而python默认的csv方言是'excel',但应该可以。 – YOU

回答

0

根据我的经验,TensorFlow的CSV阅读器非常严格,关于RFC4180。

确保您的文件在每行末尾以及引用字段中使用CRLF应允许处理。

注意:到目前为止,我一直在使用它。我没有尝试0.10以上的RC。

+0

Tensorflow 0.9中也存在相同的错误。我已经在问题中提供了我的整个csv文件。据我所知,这个csv文件服从RFC4180。请参阅上面的@你的评论。 – Ramnath

+0

对不起长时间的空白。你解决了你的问题吗?更新会很棒,就像回答你自己的问题一样。我现在没有设法复制。 –

+0

嗨@EricPlaton我在Tensorflow github中提出了这个问题,我认为他们正在研究这个问题。 https://github.com/tensorflow/tensorflow/issues/3851 – Ramnath