2017-02-21 15 views
1

私はconvNetのtr-60%、test-20%、validate-20%の50k画像データセットを消費しようとしています。 次のようにこれまでのところ、私は、)(プレースホルダを作成し、sess.run @それをfeed_dictingている: -大規模なデータセットをTensorflowセッションに読み込む/ feed_dicting

tf_train_dataset = tf.placeholder(
    tf.float32, shape=(batch_size, image_size, image_size, num_channels)) 
...... 
... 
feed_dict = {tf_train_dataset : batch_data, tf_train_labels : batch_labels} 
    _, l, predictions = session.run(
     [optimizer, loss, train_prediction], feed_dict=feed_dict) 

が、次のように公式TFパフォーマンスガイドによると、それは、実装するための貧弱な方法である: - link to TF guide

特殊な状況またはコードの場合を除き、 データをPython変数からセッションに供給しないでください。辞書。

# This will result in poor performance. 
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 

あなたはTF内のデータを読み取るためのキューを実装するには助けてくださいことはできますか?それが最善の方法であれば、

がストリームファッション

にデータをロードしているオペアンプを作成します。しかし、私は 1)を確認していない - :私が見つけ

一つの方法です 2)私は上記の提案を実装できませんでした。この仮疑似コードを作成することはできますか? ありがとう。

答えて

1

feed_dictを使用してデータをフィードすることは一般的には悪い考えですが、データを処理するために必ずopsを書き込む必要はありません。テンソルフローが認識できるフォーマットに画像データを変換することができます:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/how_tos/reading_data/convert_to_records.py。このプロセスは並行して行うことができ、テンソルフローがファイルリストを消費する可能性があるため、ファイルのリストを出力することができます。

次に、このページのチュートリアルに従って、キューを作成し、Pythonでデータをフィードします。https://www.tensorflow.org/programmers_guide/reading_data

関連する問題