R ではkeras パッケージを利用することで、
簡単にディープラーニングを動かすことができます。
clean-copy-of-onenote.hatenablog.com
また、この keras では、インストール時に GPU 利用を指定することで、
GPU でのディープラーニングを簡単に実行することができます。
ただ、ディープラーニング用にGPUを積んでいるマシンでないと、
GPUのメモリをそこまで用意していなかったりするので、
メモリ不足でエラーとなることもあります。
そんなとき、とりあえず、
CPU側のメモリを使って実行してみたいと思った時に、
GPUとCPUを切り替えたいと思うことがあります。
もちろん、インストール時にGPUを指定しなければ、
CPUでの実行できますが、
実行時に、インストールの手順から戻るのは大変な手間です。
そこで、実行時に、CPUとGPUを切り替える方法について記しておきます。
ただしバックエンドとしてtensorflowを利用しているものとします。
GPUを無効にする
CPUとGPUを切り替えるには、
R上で次を実行します。
keras::use_session_with_seed(seed,disable_gpu=T,disable_parallel_cpu=F)
seed
には、乱数のシード値を適当に設定します。
これを実行することで、GPUを使わないセッションが生成されて、
GPUを使わずにニューラルネットワークの学習を実行できます。
デフォルトでは、CPUの並列化がオフになってしまうので、
distable_parallel_cpu=F
として、並列実行はオンにしています。
いくら並列でもCPUの並列数程度ではGPUに到底敵わないのですが、
ないよりはマシでしょう。
あとは、通常通り、モデルを作って、フィッティングするだけです。
GPUを有効にする
逆に、再びGPUを利用したくなった場合は、
keras::use_session_with_seed(seed,disable_gpu=F)
を実行するでオッケーです。