2016-08-25 4 views
1

現在、私はPythonでCaffeで3d容積データを扱っています。合計で私は25巻を持ち、それぞれから、サブボリュームを取って、畳み込みネットワークを通してそれらを供給しなければなりません。問題は、これらのボリュームが数千になる可能性があり、現在はhdf5ファイルに保存しています。これは正常に動作しますが、多くのハードディスクを使用します。また、私はその場でデータの拡張を行う予定ですので、トレーニングをブロックすることなく別のスレッドにデータをロードするためにプリフェッチ手法を使用する方が良いと思います。Caffeの別のスレッドでデータをプリフェッチ

基本的に私は、トレーニングを行うためのメインスレッドをブロックすることなく、キューにデータを供給し続けるスレッドがほしいと思っています。可能であれば、サブボリュームのサンプリングと拡大を行う必要があります。誰も私をどのようにこれを実装するために案内することができます。 この例ではhttps://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/roi_data_layer/layer.pyを確認しましたが、イメージを1つだけ読み込んでキューに入れます。前もって感謝します。

答えて

1

複数のサブボリュームを一度に処理する場合は、トリアング用に別のスレッドを開始し、データのプリフェッチと機能拡張のために別個のマルチパーパスプールを起動できます。私の説明はちょっと狭いかもしれません。その完了の仕方を詳細に知りたい場合は、LRCN Video Dataをご覧ください。

0

Caffeには、メインスレッドがトレーニングを実行している間にデータを並列にプリフェッチするプリフェッチスレッドが組み込まれています。これは、includeとsrcのbase_data_layerとinternal_threadファイルの中に実装されています。私はこのプリフェッチがほとんどのアプリケーションでうまくいくと思っていますが、必要に応じてさまざまなボリュームのプリフェッチスレッドを作成できます。

関連する問題