2017-09-25 9 views
1
import tensorflow as tf 
def read_data(file_queue): 
    reader = tf.TextLineReader(skip_header_lines=1) 
    key, value = reader.read(file_queue) 
    defaults = [[0], [0]] 
    value1, value2 = tf.decode_csv(value, defaults) 
    return tf.stack(value1, value2) 

しかし、私はあなたが計算を記述しているtensorflow使用する[3、2]配列を好きなtf.decode_csv()からテンソルを扱う方法。

+0

の間でデータの無駄なやり取りを強制的に避けて、それらを使用して、グラフに値の流れを制御することができます"Tensor(" DecodeCSV:0 "、shape =()、dtype = int32)"と表示します。どうすれば実際のデータを入手できますか? – tofar

答えて

1

に変換「3が2に障害が発生した勝利」など、いくつかのデータを扱うしたいと思います。 value1,value2(およびtf.*呼び出しから生じる他の演算)は、グラフのノードを指す記号変数です。

"データ"を印刷するとTensor("DecodeCSV:0", shape=(), dtype=int32)が得られます。それは "データ"のpython表現です。

代わりに実際のデータは、グラフが作成されてSessionに配置された後にのみ存在します。

要するに、「実データ」を抽出するには、テンソルフローグラフを終了して値をフェッチする必要があります(グラフに記述されている操作の実行が強制されます)。

sess = tf.Session() 
v1,v2 = sess.run([value1, value2]) 
return v2,v2 

しかし、これはtensorflowを使用する正しい方法ないです:

はあなたのような何かをしなければなりません。

代わりに、計算をできるだけ記述し、必要に応じてすべてをグラフに実行する必要があります。 (セッションの作成、メモリの割り当て、グラフの配置、操作、データ転送の実行...あまり頻繁ではない作業が多い)

したがって、オファーをtensorflow制御フロー動作時:https://www.tensorflow.org/api_guides/python/control_flow_ops#Comparison_Operators

あなたは、私がデータを印刷する場合、それは意志tensorflowとPython

関連する問題