ディープニューラルネットワークトレーニングの文脈では、GPUを処理単位として使用する場合、トレーニングはより速く動作します。 。これはCudNNの最適化を設定して、次の行(Windows上のPython 2.7とKeras)と、環境変数の処理ユニットを変更することで行われます実行時(GPUからCPUへ)に処理ユニットを変更する方法は?
os.environ["THEANO_FLAGS"] = "floatX=float32,device=gpu,optimizer_including=cudnn,gpuarray.preallocate=0.8,dnn.conv.algo_bwd_filter=deterministic,dnn.conv.algo_bwd_data=deterministic,dnn.include_path=e:/toolkits.win/cuda-8.0.61/include,dnn.library_path=e:/toolkits.win/cuda-8.0.61/lib/x64"
出力は次のとおりです。
Using gpu device 0: TITAN Xp (CNMeM is disabled, cuDNN 5110)
問題は、GPUメモリがRAM(それぞれ12GBと128GB)に比べて制限されており、トレーニングは全体の流れの1つのフェーズに過ぎないということです。したがって、トレーニングが完了したら、私はCPUに戻る必要があります。
os.environ["THEANO_FLAGS"] = "floatX=float32,device=cpu"
私の質問は次のとおりです:私は次の行を試してみたが、それは効果がありません
- は、実行時にCPUとその逆にGPUから変更することが可能ですか? (技術的に)
- もしそうなら、私はどのようにプログラムでPythonでそれを行うことができますか? (2.7、Windows、およびTheanoバックエンドを使用したKeras)。