TensorFlow : Edward API : データ (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 11/28/2018
* 本ページは、Edward サイトの API : API and Documentation – Data を翻訳した上で適宜、補足説明したものです:
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
Edward API : データ
データは観測の集合を定義します。Edward ではデータを読むために 3 つの方法があります。これらは three ways to read data in TensorFlow をフォローしています。
Preloaded データ。TensorFlow グラフの定数や変数は総てのデータを保持します。この設定はともに作業するために最速で、データがメモリに載るのであれば推奨されます。データを NumPy 配列か TensorFlow tensor として表します。
x_data = np.array([0, 1, 0, 0, 0, 0, 0, 0, 0, 1]) x_data = tf.constant([0, 1, 0, 0, 0, 0, 0, 0, 0, 1])
推論の間は、メモリ内でデータを一度以上コピーすることを回避するために内部的にはそれらを TensorFlow 変数にストアします。例としては、getting started notebook を見てください。
Feeding。手動コードは推論の各ステップを実行するときデータを提供します。この設定は最も優れた制御を提供し、実験に有用です。
データを TensorFlow placeholder として表し、これは実行時に供給されるグラフのノードです。
x_data = tf.placeholder(tf.float32, [100, 25]) # placeholder of shape (100, 25)
推論の間、ユーザは手動で placeholder に (データを) 供給しなければなりません。各ステップで、引数として feed_dict 辞書に渡す間 inference.update() を呼び出します、これは placeholder を実際の値にバインドします。例として、variational auto-encoder スクリプトを見てください。inference update に渡り値が変化しない場合には、最初に inference を構築するときに placeholder を data 引数内の値にバインドすることもできます。
ファイルから読む。
入力パイプラインが TensorFlow グラフの最初にファイルからデータを読みます。この設定はデータがメモリに fit しない場合に推奨されます。
filename_queue = tf.train.string_input_producer(...) reader = tf.SomeReader() ...
データを TensorFlow tensor として表し、そこでは tensor はデータリーダーの出力です。推論の間、各 update はデータリーダを通して表わされる新しいバッチ tensor に渡り自動的に評価されます。例として、data unit test (https://github.com/blei-lab/edward/blob/master/tests/inferences/test_inference_data.py) を参照してください。
以上