クイックノート

ちょっとした発見・アイデアから知識の発掘を

【R】keras で GPU と CPU を切り替える方法

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)

を実行するでオッケーです。

プライバシーポリシー