「生成Deep Learning」のサンプルコードを試すためにM1 MacにTensorFlowをインストールしました。
2022年5月14日の情報です。tensorflow 2.10のインストールついての補足を追加(2022年9月19日)。
Appleのページにインストール方法があります。
pythonをインストールする
上のAppleのページからMiniforge3-MacOSX-arm64.shをダウンロード(「Conda env:」をクリック)し、インストールします。
% chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
% sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
python環境をactivateします。base環境が起動します。
% source ~/miniforge3/bin/activate
(base) %
TensorFlowのバージョンを確認する
必要なモジュールはtensorflow-deps, tensorflow-macos, tensorflow-metalの3つ。うちTensorFlowのバージョンと対応するのは最初の2つ。tensorFlow-metalはバージョンを指定せずにインストールします。
- tensorfow-deps は conda でインストールします。condaはsearchでインストール可能なバージョンを調べることができます。
(base) % conda search -c apple tensorflow-deps
Loading channels: done
# Name Version Build Channel
tensorflow-deps 2.5.0 0 apple
tensorflow-deps 2.5.0 1 apple
tensorflow-deps 2.6.0 0 apple
tensorflow-deps 2.7.0 0 apple
tensorflow-deps 2.8.0 0 apple
- tensorflow-macosは pip でインストールします。pipはバージョン指定を空にして実行すると、エラーが出ますが、インストール可能なバージョンがわかります。
(base) % pip install tensorflow-macos==
ERROR: Could not find a version that satisfies the requirement tensorflow-macos==
(from versions: 2.5.0, 2.6.0, 2.7.0, 2.8.0)
ERROR: No matching distribution found for tensorflow-macos==
最新の2.8.0にします。
TensorFlow用の仮想環境を作成する
モジュールをインストールした際に環境が壊れることが多々あるので、専用の仮装環境を作成します。
仮装環境名は、TensorFlowのバージョンからtf28とします。
(base) % conda create -n tf28 pytho=3.9
作成した仮装環境に切り替えます。
(base) % conda deactivate
% conda activate tf28
(tf28) %
TensorFlowをインストールする
(tf28) % conda install -c apple tensorflow-deps==2.8.0
(tf28) % python -m pip install tensorflow-macos==2.8.0
(tf28) % python -m pip install tensorflow-metal
pythonを起動し、TensorFlowをimportできれば成功です。
(tf28) % python
Python 3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:25:14)
[Clang 12.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
>>>
Jupyterlabとmatplotlibをインストールする
「生成Deep Learning」のサンプルを試すにはJupyterlabとmatplotlibが必要です。
pipでインストールします。
私が試した際は、condaでインストールすると、環境が壊れました。TensorFlowをimportできなくなりました。
(tf28) % python -m pip install jupyterlab
(tf28) % python -m pip install matplotlib
base環境が自動で起動しないように設定する
termnalを起動するとbase環境が自動で起動します。
気になるので、自動で起動しないように設定します。
(tf28) % conda config --set auto_activate_base false
生成Deep Learningのサンプルを試す
サンプルコードをダウンロード(clone)し、
ターミナルを起動し、
- ダウンロードしたフォルダへ移動
- 仮装環境を起動
- jupyter labを起動
% cd GDL_code
% conda activate tf28
(tf28) % jupyter lab
ノートブックを開いて、実行するとGPUに関するエラーが出ます。
2022-05-16 00:16:09.624189: I tensorflow/core/common_runtime/pluggable_device/pluggable_device
_factory.cc:305] Could not identify NUMA node of platform GPU ID0, defaulti
ng to 0. Your kernel may not have been built with NUMA support.
ただし、アクティビティモニターを見るとGPUが動いています。結果も出ますのでOKとします。
(補足1)tensorflow 2.10をインストールする
同じ方法で問題なくインストールできました。
まず仮想環境を作成します。名前はtf210とします。
% conda create -n tf210 pytho=3.9
% conda activate tf210
(tf210) %
tennsorflowをインストール
(tf210) % conda install -c apple tensorflow-deps==2.10.0
(tf210) % python -m pip install tensorflow-macos==2.810.0
(tf210) % python -m pip install tensorflow-metal
jupyterlabとmatplotlibをインストール
(tf210) % python -m pip install jupyterlab
(tf210) % python -m pip install matplotlib
(補足2)pythonのバージョンを上げる
pythonのバージョンを上げたいときはconda createで新しく仮想環境を作成すれば良いです。
miniforgeをインストールし直す必要はありません。
% conda create -n test python=3.9
とすれば、3.9.xのxの部分が最新のバージョンがインストールされます。5月に2.8をインストールしたときはpython 3.9.12でしたが、先ほど2.10をインストールしたときは3.9.13に上がっていました。
その他の指定もできます。
3.9.xのx(マイクロバージョン)を指定することも可能。
% conda create -n test python=3.9.13 # 3.9.xのx(マイクロバージョン)
% conda create -n test python=3.10 # 異なるマイナーバージョン