深層学習とその他

機械学習したいマン

chainerのto_cpuについて

アドベントカレンダー9日目です。
adventar.org
今日はchainerのmodel.to_cpuについて書いていきます。

to_cpuについて

chainerで学習する際には、ネットワークを定義した後、モデルをto_gpuすると思います。これによりGPUで処理をすることができるからです。対して、to_cpuはどのような場面で使うかというと、学習後のモデルを保存する際に使用したりします。

model.to_cpu()
chainer.serializers.save_npz("model.npz", model)


to_cpuのメリットは?

to_cpuを使うことによるメリットとして、cpuで処理をすることができることです。学習後のモデルを使って、webサービスか何かに使うときには、貧弱なサーバーではGPUを使えないことがあります。そういうときには、to_cpuしたモデルを使ってCPUのみで処理するのがいいかなと思います。

to_cpuの注意点

学習ループ中に、model.to_cpuしてそのままだとエラーを吐きます。そういうときの正しい対処法はわかりませんが、とりあえずto_gpuすることでエラーを吐かずに走り続けます。

まとめ

弱いパソコンで試すときや、予測だけするときにto_cpuを使うと便利かも知れません。