前提と結論
会社で久しぶりに機械学習(というかディープラーニング)をやることになったので、勉強用に自宅の低スペックノートPCに開発環境を構築した時のメモ。
ネットで調べるとcuDNNのセットアップの方法とか色々書いてありますけど、普通のPCで動かすだけなら、Anaconda Navigator からGUIだけでインストールできました。
(CPU版でちょっと勉強したい人向け。本格的にやりたい人のGPU版も入りそうですけど、試せないので正しく動くかどうかはわかりません)
試した環境
- Windows10 64bit (CPU: Intel Core i3, RAM: 8GB, GPU: Intel HD Graphics)
- Anaconda 5.2 (64bit, Python 3.6)
インストール
Anaconda のインストール
まず、いつも通りにインストーラーを使ってAnacondaをインストール。
https://www.anaconda.com/download/
(任意)Anaconda Navigatorで仮想環境を作成
環境の作成
それほど必要性は感じなかったのですが、Anacondaの機能で仮想環境を作れるようなので、作ってみました。
Anaconda Navigatorを起動して、左端の「Environments」を選択。真ん中のbase(root)と書いてある場所の下のほうにある「Create」から環境を作成します。
あとでわかるように、名前は適当につけます。(ここでは「DL」)
Jupyterの追加
作った段階だと、Jupyter Notebookが使えなくて、Matplotlibも入っていない環境なので、必要なパッケージを追加します。(Createじゃなく、baseをCloneすれば個別にインストールする必要ないかもしれません)
まず、先ほど作ったDLを選択して、Jupyterをインストールします。フィルタを「Not installed」や「All」にしてからjupyterと入力すればすぐに見つかるので、チェックを入れてApplyします。
依存関係を自動的にチェックして、確認画面が出るのでここでもApplyしましょう。
その他のパッケージの追加
Jupyterと同じように、必要なパッケージを追加していきます。私はとりあえず以下のものを入れました。
- Matplotlib
- SciPy
- scikit-learn
特に理由がなければ、pandasも入れるといいでしょう。
Deep Learningライブラリの追加
仮想環境にパッケージを追加した人は、同じ手順です。インストール先の環境に、TensorFlowとChainerをインストールします。
TensorFlowのインストール
Environmentsの画面から、フィルタを「Not installed」にし、tensorと入力すればTensorFlowもすぐに見つかります。ここではCPU版を使うので、「tensorflow」にチェックを入れてApplyします。
自動的に依存関係のあるパッケージを調べて、確認を求められるので、もう一度Applyすると、インストールが始まります。
TensorFlowの確認
インストールが完了したら、正しく動作するかどうか確認してみます。
と言っても、何が動けば正常なのかわからないので、別のやり方でインストールした人の方法を試してみました。
参考:イントロダクション確認
(仮想環境を作った人は注意)TensorFlowをインストールした環境のJupyter Notebookを立ち上げます。
Jupyter Notebookが立ち上がるので、リンク先のコードをセルに貼り付け、実行します。
上のような結果が出れば、インストール成功です。試した時のTensorFlowのバージョンは1.9.0なので、直接ダウンロードするより、少しだけ古いものが入るようです。
試せないのでわかりませんが、CUDA対応のGPUを搭載したPCの場合でも、同じ手順でtensorflow-gpuを入れれば動くかもしれません。
Chainerのインストール
ChainerもTensorFlowと同じ方法でインストールできます。
Chainerの確認
Chainerの動作確認は、コマンドラインから実行しました。
先ほどのJupyterと同じように、Chainerをインストールした環境のターミナルを立ち上げ、
Chainerのexampleに含まれているMNISTの学習を試してみます。
動作確認のためサンプル(mnist)を実行
以下をgit cloneまたはzipで取得する。
https://github.com/pfnet/chainer
anaconda promptでexample/mnistへディレクトリ移動
以下で実行(CPUのみ使用したMNISTのサンプル)
python train_mnist.py
参考:windows10へChainer(2.0.2)のインストール
(DL) C:\Users\****\Desktop\chainer-master\examples\mnist>python train_mnist.py
GPU: -1
# unit: 1000
# Minibatch-size: 100
# epoch: 20
C:\Users\****\Anaconda3\envs\DL\lib\site-packages\chainer\optimizers\adam.py:111: RuntimeWarning: invalid value encountered in sqrt
param.data -= hp.eta * (self.lr * m / (numpy.sqrt(vhat) + hp.eps) +
epoch main/loss validation/main/loss main/accuracy validation/main/accuracy elapsed_time
C:\Users\****\Anaconda3\envs\DL\lib\site-packages\chainer\optimizers\adam.py:111: RuntimeWarning: invalid value encountered in sqrt
param.data -= hp.eta * (self.lr * m / (numpy.sqrt(vhat) + hp.eps) +
1 0.189056 0.0948805 0.942767 0.9709 56.0272
2 0.0745826 0.076078 0.97705 0.976 114.927
3 0.0493005 0.0704326 0.984417 0.9799 177.546
4 0.034494 0.0657689 0.988983 0.9796 235.134
(略)
18 0.0100594 0.0922975 0.9972 0.9812 1052.57
19 0.00842738 0.128585 0.997583 0.9788 1113.97
20 0.00700435 0.0970289 0.99805 0.9826 1175.04
(DL) C:\Users\****\Desktop\chainer-master\examples\mnist>
なんだか、warningも出ていますが、動作しているようです。CPUモードなので、速度は遅いですね。
結局
ネットで調べると、いろいろな理由で苦労した人の記事が多いので、インストールが大変そうに思えたのですが、簡単に試すだけなら、そんなことはなかったみたいです。
Qiitaにもコマンドラインからpipを使っている例が多いみたいですけど、GUIでできる様になっているんだったら、GUIの方が良いですね。