前回の記事でpythonを実行する環境を構築する方法について説明したので、今回はpython上で深層学習を行うための準備について説明します。
各種ライブラリのインストール
深層学習の実装では既存のライブラリを使用する場合がほとんどです。
深層学習の枠組み自体は、現状ある程度確立されていますので、深層学習の枠組みを理解して一から作っていきたいという方でなければ、ライブラリを使用することをお勧めします。
(以下、ライブラリとパッケージという単語を混同して使用していますが、特に深い意味はないです。)
ここから説明する内容は私の使用しているAnaconda上での方法になります。
基本的に必要なものは変わらないのですが、Anacondaには一部のパッケージが最初からインストールされており、Anaconda以外で説明した方法を行った場合にはこれらの前提となるパッケージが存在せずエラーとなる場合があるので注意してください。
pythonのパッケージをインストールするには”pip”または”conda”を使用します。
“conda”はAnacondaに付属するパッケージ管理機能です。
pipとcondaの違いは私もよく理解していないですが、condaの方が前提となる周辺パッケージ等の管理まで行ってくれるということのようです。
どちらもパッケージ管理用の機能なので、これらを同じ環境中で併用するとエラーの基になる場合があります。
私はcondaをメインで使用していますが、一部のパッケージがcondaでは見つからない場合があり、そのような場合はpipを使用しています。
ただし前述の通りこのような作業はエラーの基ですので、pipを混在させる場合には仮想環境を複製してそちらで作業をすると良いと思います。
実際のインストール方法は以下のようになります。
AnacondaPromptやPowerShell、パスの通ったプロンプト、Ubuntuであればターミナルに打ち込んでください。
(Ubuntuのターミナルはマウス右クリック⇒Open Terminalで開けるようです。)
pipの場合
pip install (パッケージ名)
condaの場合
conda install (パッケージ名)
インストール後の動作確認方法はいくつか方法がありますが、私が良くやる方法は実際にpythonを起動して確認する方法です。
実際のやり方は以下の通りです。
1.AnacondaPrompt(またはパワーシェル、プロンプト、ターミナル等)上に
以下のように打ち込みます。
python
pythonのインタラクティブシェルが起動し、画面上に
>>>
というような表示が出ると思います。
ここにプログラムを1行ずつ入力することで対話的(インタラクティブ)にプログラムを実行していくことができます。
2.ここに以下のように打ち込みます。
import (パッケージ名)
指定したパッケージを使用しますという宣言なので、正常にパッケージが動作しない場合エラーが出力されます。
エラーが出力されなければ正常にパッケージがインストールされています。
この他にもインストールされているパッケージ一覧から確認するなどの方法もありますが、パッケージの前提となる他のパッケージの問題で上手く動かないなどの場合もありますので、実際にpython上で読み込んでみるのが一番簡単で良い方法ではないかと思います。
以下、深層学習を行っていく上で必要なパッケージについて説明していきます。
Numpyのインストール
Numpyは前回の記事にも登場しましたが、行列等の演算を行うのにとても便利なパッケージです。
pythonで数値演算を行う場合はほぼ必須だと言っていいかもしれません。
Anacondaでは標準でインストールされているようですが、仮想環境を構築する場合には最初の設定次第でインストールされていない場合もあるようです。
インストール方法は以下の通りです。
pipの場合
pip install numpy
condaの場合
conda install numpy
Matplotlibのインストール
Matplotlibはグラフ等の描画機能を提供する便利なパッケージです。
例えば以前お見せした下のグラフも、このMatplotlibを使用して作成したものです。
画像の表示等も可能で、深層学習を行った結果などを表示するためにも使用できるので是非インストールしておきましょう。
インストール方法は以下の通りです。
pipの場合
pip install matplotlib
condaの場合
conda install matplotlib
Pillow(PIL)のインストール
Pillowは画像を扱うライブラリです。
画像ファイルの読み込みや、画像の拡大縮小、白黒画像化、配列への変換や配列から画像への変換など画像に関する便利な機能がまとまっています。
深層学習が最も盛んに使用されている分野の一つが画像認識分野ですので、是非インストールしておくことをお勧めします。
インストール方法は以下の通りです。
pipの場合
pip install pillow
condaの場合
conda install pillow
また、注意点として使用時は
import pillow
ではなく、
import PIL
となります。特に良く使用するのがImageモジュールですので
from PIL import Image
という形で使用する場合が多いです。
その他便利なライブラリ
上記以外にも便利で必須級に使用されているライブラリは他にもたくさんありますが、私が使ったことがないので紹介のみとしておきたいと思います。
- Pandas (パッケージ名:pandas)
データの読み込み、処理を行うための便利な機能が入ったパッケージです。例えばcsvを読み込んである列のデータを取り出すなどの操作ができるようです。 - SciPy (パッケージ名:scipy)
科学計算用の機能が入ったライブラリです。
統計的・数学的・科学的な計算を行うことができるようです。 - scikit-learn
機械学習関係の機能が入ったライブラリです。
現在の機械学習研究分野の主流は深層学習ですが、それ以外の機械学習手法も対象問題次第では十分に有用です。
また、従来の手法を深層学習と組み合わせたり応用したりすることもできるかもしれません。
深層学習用のライブラリをインストールする
深層学習用のライブラリについて
深層学習用のライブラリはいくつかあります。
有名なものだと
- TensorFlow(Keras)
- Chainer
- PyTorch
- Caffe
- Theano
- CNTK (commercial-grade toolkit)
などがあります。
残念ながら私はこれらのライブラリをすべて使ったことがあるわけではないので、各ライブラリの特徴などを細かく説明することはできません。
ここからは私が普段使用している、Kerasについて説明します。
Kerasの概要
上の一覧でTensorFlow(Keras)と書いてある通り、Keras自体は深層学習用のライブラリというよりはフレームワークと言った感じです。
こんなことを言ってもピンとこない方もいると思うので説明すると、Kerasの背後ではTensorflowが動いています。
また、Kerasの背後で動くライブラリをTheanoに変更することもできます。
TensorFlowとTheanoは別のグループが作成しているので、やりたいことはほとんど同じでも使用方法が異なります。
Kerasではこれらをまとめて1つの使用方法にしています。
例えば畳み込み層を作ってそれらを順番につなぎたいという時など、もしかしたら畳み込み層につけられたクラス名すら異なるかもしれませんが(Conv_2dだったりConvolutional2dだったり)、Kerasで決められた名前であるConv2dを使用すれば実際に背後にあるクラス名が何かなどは考えなくても良いという仕組みです。
Kerasでは背後で使用するバックエンドとしてTensorFlow、Theano、CNTKが使用可能なようです。標準はTensorFlowです。
TensorFlowは世界でもかなり人気のあるライブラリで、Googleが開発しています。特に理由がなければTensorFlowを使用すればよいと思います。
標準のTensorflowがとてもメジャーなライブラリですので、特にこだわりがなければKerasの使用をお勧めします。
実際、TensorFlowを使用していると言いながらKerasを使用している人もいるようです。
(私も正確にこれらの違いは分かりません。)
以降の説明はKerasを使用した場合のものとなります。
(ただし、おまけに書いてあるとおりPyTorchの使用も検討しているので、今後そちらで書かれたプログラムについて説明する場合もあるかもしれません。)
Kerasのインストール
インストール方法は以下の通りです。
pipの場合
pip install keras
condaの場合
conda install keras
ここまででKerasが使用できるようになっていると思いますので、あとはKerasを使用したプログラムを書けば深層学習を実際に行うことができます。
次回はKerasを使用して手書き数字(MNIST)の認識をするプログラムについて説明していこうと思います。
おまけ:PyTorchのインストール
上の記事ではKerasをお勧めしましたが、実はPyTorchも少し触れてみたのでこちらのインストール方法も紹介しておきます。
PyTorchの概要
PyTorchはFacebookが最初に開発したオープンソースのライブラリのようです。
使用感としては、Kerasが組み立ててボタンをポチッという感じなのに対して、もう少し自分で部品を作っていく感覚でした。
(もちろんKerasでも複雑なシステムを作ると同様に部品を作りこんでいくことになるのだと思います。)
PyTorchのインストール
PyTorchのインストールはこれまでのライブラリと違い、オプションを選択してインストールしなければなりません。
下記のサイトに行き、適切なオプションを調べます。
開いたページの下の方に使用する環境を選ぶ場所があります。
図ではWindowsでCondaを使用し、Python用のCUDA10.2対応PyTorchをインストールする場合を選択しています。
CUDAはNVIDIA製グラフィックボードの演算能力を使用して行列計算を高速で行うためのライブラリです。
グラフィックボードが載っていないPCを使用している方、グラフィックボードが載っているがCUDAをインストールしていない方はNoneを選択しておけば良いと思います。
青枠で囲った部分にコマンド文字列が表示されますのでこれをコピーしてAnacondaPromptやPowerShell等に張り付けて実行し、インストールしましょう。