#はじめに
M1を搭載したMacbook Airを導入して2ヶ月くらいが経ちました.
日頃はローカルで開発は,ほぼしないのですが,
Macのカメラを使って,OpenCVやTensorFlowを動かさないといけなくなったので,
環境構築してみました.
しかし,M1(Arm)だけあって,環境構築にかなり苦労したので,
備忘録として残しておきます.
(2021年7月8日現在)
##どうしても動かしたいもの
・OpenCV
・Keras(TensorFlowに付随するKeras)
基本的には,OpenCVでカスケードファイルを用いて,Face Detectionと
VGG16を用いたPredictionを動けば合格です.
一応,M1 Macでいろいろ環境構築を試したので,メモしておきます.
(動かなかったことを詳しくメモしても...と思ったので大雑把です.)
####試したこと
-
Docker + pyenv
- Armモードでビルド(なんか動かない)
- AMDモードでビルド(なんか動かない+すごく重い)
(pyenv --help
のコマンドですら,重い)
-
Anaconda(Homebrewで入れてRossetaで起動)
動かない:Illegal hardware instruction python
やgccがないやら,いろんなエラーに巻き込まれました.
⭐️ Miniforge(参考記事:https://kazumaxneo.hatenablog.com/entry/2021/05/07/073418)
Anacondaより小容量かつArm(M1)にネイティブ対応しているので,
高速かつ安定的に動かせるのでは...と思い,brewでインストールしました.
結果的には,うまくいきました.
(以下の方法は,Appleの公式に書いてあります.)
##①まず,brewでminiforgeを入れます.
(参考:シェルスクリプトを使ってインストールする方法)
brew install miniforge
##②仮想環境を作り,activateします.
・ターミナル等の再起動をして,プロンプトに(base)と出てきていることを確認してください.M1 Macに対応した
・TensorFlowはPython 3.8だと,うまく動きました.
conda create -n python38 python=3.8
conda activate python38
##③TensorFlowとOpenCVをインストール
! ②で仮想環境の中に入ってることを確認してください.!
conda install -c apple tensorflow-deps
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
conda install opencv
##さいごに
以上で,環境構築は完了です.
ベンチマークが出てましたが,
確かにIntelのMacよりも早いです.
余談ですが,VGG16などでPredictionをしている時に,GPUのリソースを確認したところ,フルで使ってくれていました!
(リースモニター
->ウィンドウ
(メニューバー)->GPUの履歴
)
参考になれば幸いです.
##追記(2021/10/5)
python -m pip install tensorflow-macos
のインストールができない事象があるみたいなので,一度成功しているenvironment.ymlを公開します.
https://gist.github.com/yasu-kun/30b57b85e8116c8bfff545f706a60b9a
このymlファイルを用いて,仮想環境を作成することができます.
conda env create --file=environment.yml --name m1_mac_tensorflow