2016-12-13 16 views
4

tf.TextLineReader()およびtf.decode_csvを使用して長い行(たとえば、行ごとに多数の項目があるため、出力するために1つずつリストするのは現実的ではない)のファイルをデコードするにはどうすればよいですか?tf.decode_csvでテンソルフローの長い行を含むCSVファイルをデコードするにはどうすればよいですか?

典型的な使い方は次のとおりです。

reader = tf.TextLineReader()  
key, value = reader.read(filename_queue)  
record_defaults = [1,1,1,1,1]  
a,b,c,d,e = tf.decode_csv(records=value,record_defaults=record_defaults, field_delim=" ") 

我々はライン内の項目の数千人を持って、それは上記のように1(A、B、C、D、E)によってそれらを1つずつ割り当てることは不可能ですが、すべてのことができますアイテムはそのようなリストにデコードされますか?あなたは、単に行うことができますので、リストを返すtf.decode_csv

答えて

0

まあ、:

record_defaults = [[1], [1], [1], [1], [1]] 
all_columns = tf.decode_csv(value, record_defaults=record_defaults) 
all_columns 
Out: [<tf.Tensor 'DecodeCSV:0' shape=() dtype=int32>, 
<tf.Tensor 'DecodeCSV:1' shape=() dtype=int32>, 
<tf.Tensor 'DecodeCSV:2' shape=() dtype=int32>, 
<tf.Tensor 'DecodeCSV:3' shape=() dtype=int32>, 
<tf.Tensor 'DecodeCSV:4' shape=() dtype=int32> 
] 

その後、いつものようにそれを評価することができます:あなたは、ランク1 record_defaultsを渡す必要が

sess = tf.Session() 
sess.run(all_columns) 
Out: [1, 1, 1, 1, 1] 

注意を。ハングするキューに問題がある場合。

1

1800列のデータがあるとします。

record_defaults=[[1]]*1800 

し、それらを読むために

all_columns = tf.decode_csv(value, record_defaults=record_defaults) 

を使用する:あなたは、レコードのデフォルトとしてこれを使用することができます。

関連する問題