macでのpython開発環境とtensorflowパッケージ導入
pythonの開発環境としては様々な選択肢がある。全くプログラムを行っていなかったビギナー向けであればanacondaが多数のライブラリがプレインストールされている点や、JupyterやInteriJ等のIDEとの連携の容易さから有力な選択肢の一つにはなる。しかしながらanacondaは上述のように多数の付加ライブラリがプレインストールされている為に大量のメモリ(数GB)が必要であり、また近年(2020年4月より)パッケージレポジトリの使用の有料化(従業員の総数が200人異常の共通支配下にある事業体が対象)の話もあり、仕事の一貫として使う場合は別の選択肢も考えることも必要となる。
pythonのパッケージ管理ツールとしてはpipとcondaがある。conda は Anaconda 社のリポジトリから入れ、pip は PyPI から入れる。anacondaは特定の会社が管理し、pipはPyPI(オープン )で管理している為pipの方がパッケージは大量にあるが実際は併用しているケースが多いのではないかと思う。
anaconda以外の使い方としては、まずpythonをインストールし(最新のmacの場合は3系と2系がプレインストールされている。またhomebrewを使ったり、pythonの公式ページからインストーラーをダウンロードする方法もある)、テキストエディタ(Atom、NotePad++、Emacs、SublimeText等)を使ってコードを書き、pipかcondaを使ってパッケージのインストールをして、ターミナル上で実行「¥python (ファイル名)」がシンプルな使い形になる。REPL的な使い方をするのであれば、Jupyter notebookを使うのも一つの選択肢だ。
最新のMAC(M1シリコン)では、anacondaのパッケージのいくつかが使えず、またpythonのバージョンを上げすぎるとtensorflow等のDNNのパッケージが使えない為、現時点ではデフォルトでインストールされているpython3.8を使うのがベターだ。パッケージ管理として現時点ではminiforge3を使うことが推奨されている。
以下にminiforge3とtensflow等のDNNパッケージの導入手順を示す。まずminiforge3のインストールスクリプトをダウンロードして実行する。
-$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
-$ bash Miniforge3-MacOSX-arm64.sh
途中で聞かれるものはすべてyesかenterすると導入が完了する。ここで一旦ターミナルを閉じて再度開けると。コマンド入力のトップに(base)が現れる。次にpython38と言う名前の環境を立ち上げ(名前は任意)アクチベートする。
(base)..-$ conda create --name python38 python=3.8
(base)..-$ conda activate python38
ここまでで環境設定は終了し、tensorflow等のパッケージの導入を開始する。まず事前に必要なパッケージをインストールし
(python38)..-$ conda install numpy
(python38)..-$ conda install six
(python38)..-$ conda install matplotlib
(python38)..-$ conda install opencv
以下の手順でtensorflowパッケージをインストールする。
$ wget https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha2/tensorflow_macos-0.1alpha2.tar.gz $ tar xvzf tensorflow_macos-0.1alpha2.tar.gz
$ env="$HOME/miniforge3/envs/python38"
$ libs="$PWD/tensorflow_macos/ar m64/"
$ pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/grpcio-1.33.2-cp38-cp38-macosx_11_0_arm64.whl"
$ pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/h5py-2.10.0-cp38-cp38-macosx_11_0_arm64.whl"
$ pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/tensorflow_addons_macos-0.1a2-cp38-cp38-macosx_11_0_arm64.whl"
$ conda install -c conda-forge -y absl-py
$ conda install -c conda-forge -y astunparse
$ conda install -c conda-forge -y gast
$ conda install -c conda-forge -y opt_einsum
$ conda install -c conda-forge -y termcolor
$ conda install -c conda-forge -y typing_extensions
$ conda install -c conda-forge -y wheel
$ conda install -c conda-forge -y typeguard
$ pip install wrapt flatbuffers tensorflow_estimator google_pasta keras_preprocessing protobuf
$ pip install tensorboard
$ pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/tensorflow_macos-0.1a2-cp38-cp38-macosx_11_0_arm64.whl"
パッケージがインストールできたかの確認は以下のように行う。
$ python3
Python 3.8.6 | packaged by conda-forge | (default, Jan 25 2021, 22:55:00)
[Clang 11.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__ '2.4.0-rc0'
強化学習などで、TF-Agentsが必要な場合は、以下コマンド実行してインストールする。
-$ conda install bazel
-$ pip install tf_agents
PyTorchをインストールする場合はpipを使ってインストールすることができる。
pip install torch
pip install torchvision
pip install torchaudio
以上を行うことで、DNNを試すことができるようになる。
それらの実装に関して、kerasに関してはpythonとKerasによるディープラーニング以下で述べており、pytorchに関してはPyTorchによる発展ディープラーニングにて述べている。
コメント
[…] このような特徴を活かして、例えばtensflowではTensorBoradによる演算の可視化が行われる。またグラフィカルモデルにおいても、確率の複雑なフローを可視化することで処理を理解しミスが生じないようにすることができる。 […]
[…] macでのpython開発環境とtensflowパッケージ導入 […]
[…] macでのpython開発環境とtensflowパッケージ導入 […]
[…] それらの実装に関しては、環境立ち上げとしてmacでのpython開発環境とtensflowパッケージ導入にて述べている。またkerasに関してはpythonとKerasによるディープラーニング以下で述べており、pytorchに関してはPyTorchによる発展ディープラーニングにて述べている。 […]