誰向けの記事なのか → 主に自分
2019年・新年度心機一転
- これからPython使って機械学習・深層学習(以下ML・DLとする)始めたい人
- Jupyter notebookでやりたい人・始めたい人
- PyTorchを自前GPUで回したい人
- おまけ -
最近話題のJupyter Labを入れてみた
概要・目的
三種の神器とは
あくまでも個人的三種の神器で、
あんまり突っ込まれると宗教戦争が始まってしまうので、お気にせず。
- Jupyter: 対話型のnotebookが有名, 最近Jupyter Labをリリースし新しいIDE宗主に。
- GPU: DLの必需品。CPUで回すとPCで焼肉できそうになる。
- PyTorch: DLの開発フレームワーク。最近なんだか追い上げがすごくて書き方はChainerとも似てる。
なぜやるのか
対話型のJupyter notebookと最近PyTorchが流行っているので弄ってみたくなったのと
デスクトップが手に入ったので自前のGPUで回したくなったから。
あとは環境構築が壁になってプログラミング学習・研究が進まないという経験が多々あるのでそんな方の助けになればと思い、忘却の彼方に消える前に書き残すことにしました。
【追記】
あとPerfumeででぃーぷらーにんぐが流行ったから。
どうやるのか
以下の順番で環境を整えていく
1.Pythonの環境(PowerShell上,今回はanaconda)
2.Jupyter notebook
3.GPU周りとPyTorch
環境
- Windows10 Pro (64bit x64)
- intel Core i7-6700 3.4GHz
- NVIDIA GTX Geforce 1060 3GB(Ver 385.54)
- PowerShell 6
早速やってく
1.Pythonの環境
PowerShellの構築(Anaconda promptとか使うぜって方は飛ばして下さい)
多分Windowsであれば最初からPowerShellは入っているかと思いますが
一応現時点(2019/01/01)での最新版(PowerShell 6)をダウンロード・インストールしておきましょう
環境にあったものの
Downloads (Stable)
からダウンロードしましょう
MacやLinux等に関してはこちらを参照してください。
今回はWindows 10 x64 なのでそれに対応したものをダウンロードします。
あとはインストーラーの指示に従って特に変更することなくインストールしてください。
注. Windows7だと幾つか環境の前提が必要となるようです、詳しくはこちら
実際に使えるか見てみましょう
Cortanaか何かでプログラムを検索してPowerShell6を起動します。
検索して起動
インストール出来てますね、これでPowerShell6の構築は完了です。
Pythonのダウンロード
Pythonのダウンロードページで環境にあった物をダウンロードしましょう。
御自分のWindowsナンバリングと何bitかはこちらを参考に確認してください。
今回はWindows10 64bitなので
最新版(2019/01/01時点)のPython3.7.2
(どうやら3.7系だと他の学習フレームワークで不具合が出るそうですが自分はまだ確認できていません)
Download Windows x86-64 executable installer
を選んでダウンロードします。
Pythonのインストール
ダウンロードが済んだら
ダウンロードしたexeファイルを実行しインストールします。
以下の画面が出てきたら
- Add Python 3.7 to PATH
のチェックボックスにチェックをつけて
Install Now
をクリック、Pythonの世界に飛び込みましょう!
(環境構築のここの部分一番ワクワクするの自分だけでしょうか)
なんたらかんたらSuccefully
みたいなのがでてきてインストール完了です。
上手くいっているか確認してみましょう。
PowerShell 6を起動して
> python -V
Python 3.7.2
となれば完了です。
Anacondaの環境構築(pipでいいよって方は飛ばしてください)
なぜAnacondaなのか(飛ばしても可)
正直なところpipコマンドというものを使えば大抵のモジュールはインストールできてしまいます。
(pandasとかnumpyとかmatplotlibとかとか)
Anacondaを入れる必要はないのですが当方バイオ・ケモインフォマティクスが専攻で
conda install でしか入れることのできないRdkitというモジュールを入れたいのでAnacondaを選択しました。
ダウンロード・インストール
Pythonはとても偉い言語で、さん(3)付けしてPython3と呼ばないとシメられる(全くのウソ、環境の事情です)
らしいのでWindowsのpython3.7の方をダウンロードしましょう。(割と容量があるのでモチ焼いて待ちましょう)
ダウンロードが済んだらインストーラーを起動してデフォルトのまま進めてインストールを開始・完了しましょう。
詳細な説明はこちら
AnacondaをPowerShell6で使えるようにする
まずはPowerShell6のPATHを登録します。
PowerShell6を起動し
> $profile
C:\Users\(ユーザー名)\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PowerShell6起動時に読み込まれるスクリプトのパスが表示されます。
((ユーザー名)の部分は皆さんの環境ごとに違いますので今後はそれに合わせて変更してください)
次に表示されたフォルダーを作成します。
> notepad $profile
警告がでますがそのまま白紙のメモ帳で以下の文を追加して保存して下さい。
# Anaconda
$Env:Path += ";C:\Users\(ユーザー名)\Anaconda3\Library\bin\"
$Env:Path += ";C:\Users\(ユーザー名)\Anaconda3\Scripts"
PowerShell6の権限を設定する
再度PowerShell6を起動すると、「このシステムではスクリプトの実行が無効になっているため、…」というエラーメッセージが表示されます。
実行権限を得るために
> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
本当に変更するか聞かれるかもしれませんが、yを入力して変更します。
変更できたか確認するため、「Get-ExecutionPolicy」コマンドで現在の状況を確認します。
> Get-ExecutionPolicy
RemoteSigned
となっていれば完了です。
一応これでAnacondaがPowerShell6上で使えるようになったはずです。
再起動して確認してみましょう。
> conda -V
conda 4.5.12
となれば成功です。
変更前もしくは変更されていなければ
> Get-ExecutionPolicy
Restricted
となっています。
仮想環境を使えるようにする
PowerShell6ではActivateが使えません、
Activateによって仮想環境を立ち上げてPytorchなどRdkitを使えるようにします。
以下のコードを実行します。
> conda install -n root -c pscondaenvs pscondaenvs
動作確認をしましょう。
> conda create -n 環境名 #環境名はご自由に、なんか聞かれたらyで。
> avtivate 環境名
(環境名) PS C:\Users\(ユーザー名)> python --version
Python 3.7.2
これで完了です。
仮想環境中の操作などはこちらがとても参考になります。
やっとPythonをPowerShell上のAnaconda環境でつかえるようになりました!
2.Jupyter notebookの構築
ではでは次は何かと便利なJupyter notebookの構築です。
章に分けるほどの説明量はないのですが使い方とともにやっていきます。
Ipythonのインストール
対話型なのは実はIpython
Jupyter notebookでよく見る
In[1]:1+1
Out[1]:2
この形は実はIpythonの対話型なのです。
なのでJupyter notebookを使うにはIpythonが必要です。
PowerShell6を起動し以下のコードを実行します。
(以後仮想環境名は省略しますが各自必要な仮想環境を作ってください)
> conda install -c anaconda ipython
インストールが完了したら動作確認してみましょう
> ipython
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.
In []:
これで完了です。
Jupyter notebookのインストール
ついにJupyter notebookのインストールです。
PowerShell6上の目的の環境で
> conda install -c anaconda jupyter
動作確認をします。
> jupyter notebook
上手く動作すれば以下のような画面が起動するかと思います。
jupyter notebookを停止したい場合は右上のQuitを押して下さい。
新ノートブック(ipynb)を作成したいディレクトリに移動して
右上のNewからPython3を選ぶと以下のように新しくノートブックが作られます。
コードの他にマークダウン方式で解説や補足を加える事ができます。
色々な使い方はこちら、Jupyter以外の解説も豊富でとても勉強になります。
3.GPU周りとPyTorch
ついにDL周りの環境構築にはいって行きます、ここからが正念場です。
GPU周り
具体的には以下の二つを揃えます。
- CUDA ToolKit 10.0
- cuDNN v7
下準備
Visual Studioのインストール
CUDAのインストールの際にVisual C++のコンパイラを用いるのでインストールしておきます。(Community板でOK)
インストーラーのダウンロードページ
インストーラーの以下のページでC++に関係するものと御自分の興味のあるものを選んでインストールしましょう。(割と時間かかりますのでおせちでも食べながら待ちましょう)
もしかしたら以下の個別のコンポーネントから
”コンパイラ、ビルド ツール、およびランタイム”の項の
VC++ 2017 version 15.9 v14.16 latest v141 tools
にチェックを入れてインストールすれば良いのかもしれません
(猛者の方教えてください)
GPUドライバのインストール(更新)
次にGPUドライバのインストールです。
ドライバのダウンロードページに行って御自分のGPUにあったドライバをダウンロード・インストールしましょう。
今回自分のGPUはNVIDIA GTX Geforce 1060 3GB Ver385.54なのでこのままではCUDA Toolkit 9.0までしか使えないので最新(2019/01/01時点)版のVer 417.35に更新します。
ちなみに各CUDA Toolkitのドライバのバージョン要件は以下のよう
GPUの詳細の確認方法はこちら
ダウンロードが済んだらインストーラーの頭の数字がバージョンのはずなので念のため確認しておきましょう。
417.35になってますね。ではインストーラーを起動してインストールしましょう。
(これも割とかかるので録画したガキ使を見ましょう)
CUDA ToolKit 10.0
下準備が終わったのでCUDAを入れていきます。
ダウンロードページに飛んで対応する環境に合わせてダウンロードしましょう。
今回自分の環境はWindows10 (x64)なので以下のようになるかと思います。
ダウンロードにもインストールにも時間がかかるのでガキ使の続きを見ましょう。
自分は引き出しシリーズが好きです。
インストールが終わると再起動するように言われるので再起動しましょう。
cuDNN v7
先ほどCUDAを入れた際に以下のようなフォルダーができたかと思います。
このフォルダー内のbin, include, lib\x64にcuDNNでダウンロードした同フォルダ名中身をコピーしていきます。
まずはダウンロードページ(アカウント登録が必要です)へ
注. 自分がやった時はリンク踏んでもページがなかなか開かなかったので何回か試してみてください
アカウントも作成し無事以下のようなダウンロードページにたどり着いたら先ほどCUDA ToolKit 10.0をインストールしたので
Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0
を選択し御自分の環境に合わせて選んでください、
今回はWindows10を選びます。
zipでダウンロードされるので解凍して中身を確認しましょう
cudaというファイルの中に先ほど触れたbin, include, lib\x64があると思います、
その中に以下のようにポツリとファイルが一つだけ入っています。(以下はbinの例)
これらを先述したC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0のbin, include, lib\x64にコピーします。
それぞれの画像の
左(cuDNNのcuda内のbin, include, lib\x64)
のウィンドウから
右(NVIDIA GPU Computing Toolkit\CUDA\v10.0内のbin, include, lib\x64)
それぞれポツリとあったファイルをドラッグアンドドロップして下さい
(ターミナルでも出来そうですが)
cudnn64_7.dllをドラッグアンドドロップ
(copyは気にしないでください)
cudnn.hをドラッグアンドドロップ
cudnn.libをドラッグアンドドロップ
全て管理者権限が必要な操作ですのでご注意ください。
一応PowerShell6でPATHが通ってるか確認しときましょう。
以下のコマンドをPowerShell6上で実行
> $env:Path.split(";")
こんな感じになってればOKです。
PyTorch
ついについにPyTorch、早速PowerShell6上でインストール...の前に!
割とPyTorchインストールの際の環境条件は割とシビアでめんどくさいです...
(ここまでかなり細かく解説してきたのもその為)
しかしそこは流石は我らがPyTorch、めちゃんこ便利なサイトが...
ここで自分の環境を入力するとなんと実行するべきコードを生成してくれます!
ご自身の環境に合わせてコードを生成してください。
今回は
Your OS:Windows10
Package:conda
Language:python3.7
CUDA: CUDA Toolkit 10.0
(GPU持ってない!CPUで回す!って方はCUDAの項をNoneにしてください)
こんな感じなので以下のようになります。
ここで生成された
conda install pytorch torchvision cuda100 -c pytorch
をPowerShell6上で今回はPytorchという仮想環境を作って実行します。
> conda create -n Pytorch
> avtivate Pytorch
(Pytorch) PS C:\Users\(ユーザー名)> python --version
Python 3.7.2
(Pytorch)> conda install pytorch torchvision cuda100 -c pytorch
これも割と時間かかるので猫に餌をあげてきます。
インストールが終わったらPyTorchの仮想環境で動作確認してみましょう
(Pytorch)> python
>>>import torch
>>>print(torch.cuda.is_available()) #GPUが使えるかどうかTrueと出ればPerfume(成功です)
True
ついでに他の神器も入れておきましょう
(Pytorch)> conda install pandas matplotlib jupyter notebook scipy scikit-learn scikit-image seaborn
# jupyter notebookに関しては二度手間で申し訳ない
(Pytorch)> pip install opencv-python
# (この過程でpython version3.7.1になりますが問題ないはず)
こうなればこっちのもんです。
これであなたもPerfumeになれる。
しかし強いPerfumeになるために今回はJupyterとGPU環境を整えたのでそれらでしっかりPytorchが機能するか確認しましょう!
(Pytorch)> jupyter notebook
出来ました!これで完了ですお疲れさまでした!
追記
Minicondaというものを使って最速で機械学習の環境を揃えることも出来るようです...!
当記事のAnacondaの部分をMinicondaに書き換えてれば出来そうですね!
おまけ:Jupyter Lab 使ってみる
当方ミーハー野郎ですので
IDE(統合開発環境)は
Emacs→Atom→VisualStidio→?
と変遷を経ており、今回はJupyter Labに改宗を考えております。
早速使ってみましょう!
PowerShell6の任意の仮想環境でインストールして起動します。
> conda install -c conda-forge jupyterlab
> jupyter lab
「え、何このタブ」
めちゃめちゃファイル管理がしやすくなっており
jupyter Lab上でcsvファイルを表示出来るようになってるようです。
しかも元のシンプルなデザインも保っている...
「2019年、改宗します。」
注. 膨大なデータを扱わせると動きが不安定になるようです、以下で紹介するサイトによるとデータ量が大きい場合はnotebookで回すといいそうで。
その他の新機能についてはこちらのサイトの方が先行して紹介して下さっておりますので参考にしてください(参考にさせて頂きました)
おわりに
くぅ~疲れました、何とか元日に間に合った...
今回Perfumeが紅白でDeepLearningを映像演出に用いたということで急いで書いた記事ですので文章が稚拙だったり、テンションが一定じゃなかったりしてしまい申し訳ありません、間違っているところ等ありましたらご指摘ください。
自分の書いた目的としてはこれでデータ解析屋の仲間がもっと増えて欲しいという事と
"機械学習周りをAIと呼び、シンギュラリティやら仕事を奪う"
という何か凄そうな話をするのもいいと思うのですがそれ以上に自分で触って実際に実装してみて地に足つけて、この技術には何ができて何ができないのか、何をやらせるべきで何をやらせるべきでないのか、自分なりに考えてみて欲しいと生意気な情報系学生として思ったからです。
それでは
「2019年も"ディープ"な年にしていきましょう」
参考資料
以下の文献・サイトを参考に最新のVersionに置き換えて書かせていただきました、各サイト・記事の執筆者の方々には最大限の謝意を申し上げます。
DeepLearning 用 GPU 環境構築 (python framework 環境整備編)
https://qiita.com/kattoyoshi/items/20923cb50951624b312c
Deep Learning 用 GPU 環境構築 (CUDA関連インストール編)
https://qiita.com/kattoyoshi/items/494238793824f25fa489
NVIDIA DEEP LEARNING SDK DOCUMENTATION
https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html
PowerShellでAnacondaを使う方法
https://www.gesource.jp/weblog/?p=8254
Jupyter Labの便利な新機能まとめ -機械学習エンジニアが愛する開発環境(IDE)の決定版
https://www.codexa.net/jupyter-lab-beta-review-ml-ide/
PowerShell 6.0がリリースされました
https://blog.shibata.tech/entry/2018/01/15/010808
Windows 7にPowerShell 6.0をインストールする - 再び
https://blog.shibata.tech/entry/2017/12/27/204933
LinuxへのPowerShellのインストールが簡単になりました
https://blog.shibata.tech/entry/2017/02/06/202025
Anaconda を Windows にインストールする手順
https://weblabo.oscasierra.net/python-anaconda-install-windows/
【初心者向け】Anacondaで仮想環境を作ってみる
https://qiita.com/ozaki_physics/items/985188feb92570e5b82d#%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%81%AE%E5%89%8A%E9%99%A4
Condaの仮想環境をJupyter Notebookから利用する
http://starpentagon.net/analytics/conda_env_jupyter_notebook/
PROCRASIST
https://www.procrasist.com/entry/2-100-numpy-exercise
Visual Studio 2017 のインストール
https://docs.microsoft.com/ja-jp/visualstudio/install/install-visual-studio?view=vs-2017
機械学習の環境を構築するのにAnacondaをインストールする必要はない。Minicondaを使おう
https://qiita.com/icoxfog417/items/beffb263a7ffb8e5bcad
免責注意事項
このコード・知識を使った環境構築で生じた損益に関しては一切の責任を負いかねますので自己責任で行って下さい。