3

Theano/Lasagne の例はすべて、メモリに完全にロードできる mnist や cifar10 などの小さなデータ セットを扱っていることがわかりました。

私の質問は、大規模なデータセットでトレーニングするための効率的なコードを作成する方法です。具体的には、GPU をビジー状態に保つためにミニバッチ (リアルタイムのデータ拡張を含む) を準備する最善の方法は何ですか?

たぶん、CAFFE の ImageDataLayer を使用するのが好きですか? たとえば、すべての画像パスとラベルを含む大きな txt ファイルがあります。いくつかのコードを示していただければ幸いです。

どうもありがとうございました!

4

1 に答える 1

3

データがメモリに収まらない場合は、ミニバッチを準備して HDF5 ファイルに保存し、トレーニング時に使用することをお勧めします。

ただし、これはオンザフライで行われるため、データ拡張を行う場合はこれで十分です。Python のグローバル インタープリター ロックのため、GPU がビジー状態の間、画像を既に読み込んで前処理することはできません。私が知っているこれを回避する最善の方法は、Fuel ライブラリです。Fuel は別の Python プロセスでミニバッチをロードして前処理し、TCP ソケットを介してトレーニング プロセスにストリーミングします: http://fuel.readthedocs.org/en/latest/server.html#data-processing-server

さらに、スケーリングや平均減算など、データを前処理するための関数をいくつか提供します。

お役に立てれば。マイケル

于 2016-02-27T20:41:27.350 に答える