Re:Readme

PCトラブルや環境構築、家電量販店とかで買ったもののメモ。ご利用は自己責任で。

Mac環境で学ぶDeep Learning

プログラミング言語などの参考書に定評のあるオライリー社から、Deep Learningの書籍が出ていました。タイトルは「ゼロから作るDeep Learning」。とても分かりやすいというAmazonレビューに釣られて購入してみました。
https://www.amazon.co.jp/ゼロから作るDeep-Learning-Pythonで学ぶディープラーニングの理論と実装-斎藤-康毅/dp/4873117585/ref=sr_1_1?ie=UTF8&qid=1494423578&sr=8-1&keywords=ゼロから作るdeep+learningwww.amazon.co.jp

今回はMacOS(Sierra)で、本書で使用するPython開発環境およびライブラリ(NumPy、MatPlotLib、Pil)のインストールについてまとめます。

MacPorts

過去の記事にインストール方法を書いていたのでリンクを貼っておきます。
hal-drumas.hatenablog.com

Python 3.6

MacPortsを用いてインストールを行いました。

$ sudo port install python36

Python 3.6がインストールされます。
MacにはもともとPython 2.7が入っていますが、

$ sudo port select --set python python36

$ sudo port select --set python3 python36

をそれぞれ任意に実行することで、

$ python3

で実行されるPythonインタプリタが3.6になります。
自分の環境ではpythonコマンドでプリインストールのPython 2.7を、python3コマンドで今回インストールしたMacPortsPython 3.6を実行するよう、後者のコマンドを実行。
virtualenvで複数のPythonの仮想環境を選択できるようにすることもできるらしいけど、めんどくさかったので今回はスルー。

ちなみに、

$ port select --list python

によってMacPortsでセット可能なPython一覧が表示されます(Noneを設定するとMacPortsPythonは使用されません)。

また、インストール時、

##############################################################
# IF YOU ARE USING PYTHON FROM THE TERMINAL, PLEASE INSTALL:
# py36-readline
# TO AVOID A LIBEDIT / PYTHON INTERACTION ISSUE.
# REF: https://trac.macports.org/ticket/48807
##############################################################

のように表示されたので、

$ sudo port install py36-readline

を実行した所、Pythonインタプリタが落ちるようになってしまいました(Abort trap: 6)。
そこで下記の記事にある別のreadlineを使用することに。
sitekamimura.blogspot.jp

ちなみに、readlineとはbashライクな文字列入力を実現するためのライブラリらしいです。
http://apribase.net/2008/04/26/gnu-readline/

Pip

Pythonのパッケージ管理システム。後述のNumPyとMatPlotLibのインストールに使用。

$ sudo port install py36-pip

Pipのバージョンが古くなると、アップデートを促されることがある。その場合は下記のコマンドでアップグレード・バージョン確認が可能。

$ sudo pip-3.6 install --upgrade pip
$ pip-3.6 --version

Numpy

数値計算のためのPythonライブラリ(参考: http://rest-term.com/archives/2999/)。

$ sudo pip-3.6 install numpy

MatPlotLib

グラフの描画などを行うためのPythonライブラリ。

$ sudo pip-3.6 install matplotlib

ここまでインストールが済んだら、動作確認。
こちらの記事のスクリプトPythonインタプリタ上で実行してみて、無事にsin関数のグラフが出力されれば成功です。
cranethree.hatenablog.com

Pil(Pillow)

Python Image Libraryの略。Pilは開発が終了しているらしく、後継のPillowを使用する。

$ sudo pip-3.6 install Pillow