LoginSignup
28
24

More than 5 years have passed since last update.

[備忘録]ディープラーニング with 三種の神器

Last updated at Posted at 2019-01-01

誰向けの記事なのか → 主に自分

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)をダウンロード・インストールしておきましょう

まずはダウンロードページへ

PowerShell_PowerShell_ PowerShell for every system! - Google Chrome 2019_01_01 2_26_19.png

環境にあったものの
Downloads (Stable)
からダウンロードしましょう

MacやLinux等に関してはこちらを参照してください。

今回はWindows 10 x64 なのでそれに対応したものをダウンロードします。
あとはインストーラーの指示に従って特に変更することなくインストールしてください。

注. Windows7だと幾つか環境の前提が必要となるようです、詳しくはこちら

実際に使えるか見てみましょう
Cortanaか何かでプログラムを検索してPowerShell6を起動します。

スクリーンショット (3).png

検索して起動

選択PowerShell 6 (x64) 2019_01_01 2_49_20.png

インストール出来てますね、これでPowerShell6の構築は完了です。

Pythonのダウンロード

Pythonのダウンロードページで環境にあった物をダウンロードしましょう。

御自分のWindowsナンバリングと何bitかはこちらを参考に確認してください。

今回はWindows10 64bitなので
最新版(2019/01/01時点)のPython3.7.2
(どうやら3.7系だと他の学習フレームワークで不具合が出るそうですが自分はまだ確認できていません)

Download Windows x86-64 executable installer

を選んでダウンロードします。

Pythonのインストール

ダウンロードが済んだら
ダウンロードしたexeファイルを実行しインストールします。

以下の画面が出てきたら

キャプチャ.PNG

  • 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を選択しました。

ダウンロード・インストール

まずはダウンロードページへ

Downloads - Anaconda - Google Chrome 2019_01_01 3_12_00.png

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を押して下さい。

conda-test_ - Google Chrome 2019_01_01 7_48_27.png

新ノートブック(ipynb)を作成したいディレクトリに移動して
右上のNewからPython3を選ぶと以下のように新しくノートブックが作られます。

conda-test_ - Google Chrome 2019_01_01 7_50_15 (2).png

コードの他にマークダウン方式で解説や補足を加える事ができます。
色々な使い方はこちら、Jupyter以外の解説も豊富でとても勉強になります。

3.GPU周りとPyTorch

ついにDL周りの環境構築にはいって行きます、ここからが正念場です。

GPU周り

具体的には以下の二つを揃えます。

  • CUDA ToolKit 10.0
  • cuDNN v7

下準備

Visual Studioのインストール
CUDAのインストールの際にVisual C++のコンパイラを用いるのでインストールしておきます。(Community板でOK)
インストーラーのダウンロードページ

インストーラーの以下のページでC++に関係するものと御自分の興味のあるものを選んでインストールしましょう。(割と時間かかりますのでおせちでも食べながら待ちましょう)

install-visual-studio-community.png

もしかしたら以下の個別のコンポーネントから
”コンパイラ、ビルド ツール、およびランタイム”の項の

VC++ 2017 version 15.9 v14.16 latest v141 tools

にチェックを入れてインストールすれば良いのかもしれません
(猛者の方教えてください)

Visual Studio Installer 2019_01_01 8_37_52.png

GPUドライバのインストール(更新)
次にGPUドライバのインストールです。

ドライバのダウンロードページに行って御自分のGPUにあったドライバをダウンロード・インストールしましょう。
今回自分のGPUはNVIDIA GTX Geforce 1060 3GB Ver385.54なのでこのままではCUDA Toolkit 9.0までしか使えないので最新(2019/01/01時点)版のVer 417.35に更新します。

ちなみに各CUDA Toolkitのドライバのバージョン要件は以下のよう

キャプチャ.PNG

GPUの詳細の確認方法はこちら

ダウンロードが済んだらインストーラーの頭の数字がバージョンのはずなので念のため確認しておきましょう。
スクリーンショット (11).png

417.35になってますね。ではインストーラーを起動してインストールしましょう。
(これも割とかかるので録画したガキ使を見ましょう)

CUDA ToolKit 10.0

下準備が終わったのでCUDAを入れていきます。

ダウンロードページに飛んで対応する環境に合わせてダウンロードしましょう。

今回自分の環境はWindows10 (x64)なので以下のようになるかと思います。
CUDA Toolkit 10.0 Download _ NVIDIA Developer - Google Chrome 2019_01_01 9_16_20.png

ダウンロードにもインストールにも時間がかかるのでガキ使の続きを見ましょう。
自分は引き出しシリーズが好きです。

インストールが終わると再起動するように言われるので再起動しましょう。

cuDNN v7

先ほどCUDAを入れた際に以下のようなフォルダーができたかと思います。

スクリーンショット (4).png

このフォルダー内のbin, include, lib\x64にcuDNNでダウンロードした同フォルダ名中身をコピーしていきます。
まずはダウンロードページ(アカウント登録が必要です)

注. 自分がやった時はリンク踏んでもページがなかなか開かなかったので何回か試してみてください

アカウントも作成し無事以下のようなダウンロードページにたどり着いたら先ほどCUDA ToolKit 10.0をインストールしたので

cuDNN Download _ NVIDIA Developer - Google Chrome 2019_01_01 9_50_53.png

Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0

を選択し御自分の環境に合わせて選んでください、
今回はWindows10を選びます。

zipでダウンロードされるので解凍して中身を確認しましょう

cudaというファイルの中に先ほど触れたbin, include, lib\x64があると思います、
その中に以下のようにポツリとファイルが一つだけ入っています。(以下はbinの例)

スクリーンショット (6).png

これらを先述した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)

それぞれポツリとあったファイルをドラッグアンドドロップして下さい
(ターミナルでも出来そうですが)

スクリーンショット (8).png
cudnn64_7.dllをドラッグアンドドロップ
(copyは気にしないでください)
スクリーンショット (9).png
cudnn.hをドラッグアンドドロップ
スクリーンショット (10).png
cudnn.libをドラッグアンドドロップ

全て管理者権限が必要な操作ですのでご注意ください。

一応PowerShell6でPATHが通ってるか確認しときましょう。
以下のコマンドをPowerShell6上で実行

> $env:Path.split(";")

PowerShell 6 (x64) 2019_01_01 10_44_46.png

こんな感じになってればOKです。

PyTorch

ついについにPyTorch、早速PowerShell6上でインストール...の前に!
割とPyTorchインストールの際の環境条件は割とシビアでめんどくさいです...
(ここまでかなり細かく解説してきたのもその為)

しかしそこは流石は我らがPyTorch、めちゃんこ便利なサイトが...
ここで自分の環境を入力するとなんと実行するべきコードを生成してくれます!

ご自身の環境に合わせてコードを生成してください。
今回は

Your OS:Windows10
Package:conda
Language:python3.7
CUDA: CUDA Toolkit 10.0
(GPU持ってない!CPUで回す!って方はCUDAの項をNoneにしてください)

こんな感じなので以下のようになります。

PyTorch - Google Chrome 2019_01_01 10_54_59.png

ここで生成された

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

PyTorch - Google Chrome 2019_01_01 13_03_55.png

出来ました!これで完了ですお疲れさまでした!

追記

Minicondaというものを使って最速で機械学習の環境を揃えることも出来るようです...!

機械学習の環境を構築するのにAnacondaをインストールする必要はない。Minicondaを使おう

当記事のAnacondaの部分をMinicondaに書き換えてれば出来そうですね!

おまけ:Jupyter Lab 使ってみる

当方ミーハー野郎ですので
IDE(統合開発環境)は
Emacs→Atom→VisualStidio→?
と変遷を経ており、今回はJupyter Labに改宗を考えております。

早速使ってみましょう!

PowerShell6の任意の仮想環境でインストールして起動します。

> conda install -c conda-forge jupyterlab
> jupyter lab

JupyterLab - Google Chrome 2019_01_01 21_50_56.png

「え、何このタブ」
めちゃめちゃファイル管理がしやすくなっており
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

免責注意事項

このコード・知識を使った環境構築で生じた損益に関しては一切の責任を負いかねますので自己責任で行って下さい。

28
24
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
24