Python Tensorflow CSV解码错误
我使用的是TensorFlow 0.10.0rc0。我在Ubuntu 14.04上有CUDA驱动程序版本=7.5和CUDNN4 我有一个简单的CSV文件,它只有一行,如下所示:Python Tensorflow CSV解码错误,python,csv,tensorflow,Python,Csv,Tensorflow,我使用的是TensorFlow 0.10.0rc0。我在Ubuntu 14.04上有CUDA驱动程序版本=7.5和CUDNN4 我有一个简单的CSV文件,它只有一行,如下所示: "field with newline",0 在Ubuntu上的VIM中按enter键添加了换行符。 我可以使用read\u csv功能在pandas中读取此文件,其中文本字段显示为包含单个\n字符 但当我尝试在TensorFlow中读取它时,我得到以下错误: tensorflow.python.framework.e
"field with
newline",0
在Ubuntu上的VIM中按enter键添加了换行符。
我可以使用read\u 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管道中处理,这将非常有用。根据我的经验,TensorFlow的CSV阅读器对于RFC4180非常严格 确保您的文件在每行末尾以及在引用字段中使用CRLF,应该允许处理
注意:到目前为止,我一直在使用0.9。我没有尝试从0.10开始使用RCs。这里的问题是
TextLineReader
在csv解码器解析文件之前将其拆分为新行。使用tf.data,您可以使用,它根据RFC4180正确解析此文件。RFC4180规范表示允许使用,python的默认csv方言为“excel”,但应该能够使用。Tensorflow 0.9中也存在相同的错误。我已经在上面的问题中给出了我的整个csv文件。据我所知,这个csv文件遵循RFC4180。请看上面@you的评论。很抱歉出现了长时间的空白。你的问题解决了吗?更新会很棒,比如回答你自己的问题。我现在没有复制。嗨@EricPlaton,我在Tensorflow github中提出了这个问题,我想他们正在研究这个问题。