2016-11-14 2 views
0

Tensorflow用のバッチ処理パイプラインを使用しています。tf.train.slice_input_producerを使用し、tf.train.shuffle_batchを使用してバッチを読み取ります。Tensorflowプロデューサ - ディスクのボトルネックを避けるためにメモリ内に完全なデータセットをロードする

単純なモデルの場合、各バッチは入力プロデューサがディスクから次のバッチをキューに読み込むよりも速く終了するという問題があります。ディスクから十分な帯域幅がありません。しかし、完全なデータセットはメモリに収まるでしょう。

Tensorflowプロデューサを修正して、ディスクからストリーミングする代わりに、完全なデータセットをメモリに読み込む方法はありますか?

答えて

0

tf.train.start_queue_runnersとtf.train.Coordinatorを使用してキューを設定することをお勧めします。詳細は、hereを参照してください。

+0

私は本当にキューランナーを使用しています。問題は、ディスク・アクセスが、キュー・ランナーがキューをいっぱいに保つのに十分高速でないことです。プロデューサーが最初のエポック後に画像を記憶しておくか、循環的にそれらを再ロードし続けるかどうかは明らかではありません。 – user745668

+0

どのAPIを使用しているのかわかりませんが、tf.read_batch_examples()を使用している場合は、num_threads(キューイング用)とキュー容量があります。それは役に立ちますか?私はそれが十分に速いが、キューのサイズが十分に大きくないディスクアクセスでないかどうか疑問に思っています –

関連する問題