私は DNN 音声強調プロジェクトに theano と lasagna を使用しています。ラザニアのドキュメント (/github.com/Lasagne/Lasagne/blob/master/examples/mnist.py) の mnist の例と非常によく似たフィードフォワード ネットワークを使用します。このネットワークは、いくつかのドロップアウト層を使用しています。Nvidia Titan X GPU でネットワークをトレーニングしています。ただし、ドロップアウトを使用しない場合、GPU 使用率は約 60% で、1 エポックは約 60 秒かかりますが、ドロップアウトを使用すると、GPU 使用率は 8% に低下し、各エポックは約 600 秒かかります。これは、ドロップアウト率が 20% または 0.1% に設定されているかどうかに関係ありません。
最初は、ドロップアウト マスクの生成に使用された乱数ジェネレーター (RNG) が GPU で実行されなかったことが原因だと考えていました。ただし、コード ( https://github.com/Lasagne/Lasagne/blob/master/lasagne/layers/noise.py ) では、rng_mrg が使用されているように見えます。これは、このリンクに基づいて GPU で実行する必要があります: http ://deeplearning.net/software/theano/tutorial/examples.html#other-implementations
theano プロファイラーを実行すると、「theano.sandbox.rng_mrg.mrg_uniform」が実行時間の 86.7% を占めていることがわかりますが、これはわかりません。
誰かが私の GPU 使用率を殺してしまう原因について考えを持っているなら、私はそれを感謝します.