2016-08-17 81 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