MacにPlaidML環境を構築
要約
実行環境
- MacBook Pro 13inch (mid 2014)
- Catalina
最終的にやったこと
- Catalinaをクリーンインストール
- Homebrewをインストール
- Homebrewでpyenvをインストール
- pyenv-virtualenvもインストール
- pyenvでPython 3.6.9をインストール
- pyenv-virtualenvでPython 3.6.9を基にPlaidML用の仮想環境作成
- PlaidMLで遊ぶ用のディレクトリを作成
- 作成したディレクトリでPlaidML用の仮想環境を指定
- 仮想環境に入ってPlaidML, Keras, TensorFlowをインストール
- 動作確認
途中でやらかしたこと
本題
動機
Catalinaにアップデートしたら写真ライブラリが開けなくなった. 何度修復しようが開けなかったため,いっそCatalinaをクリーンインストール.ついでにシステムに直接インストールしていたPythonを仮想環境に入れ直した.そろそろDeep Learningやってみたかったし.
Catalinaのクリーンインストール
このページを参考にした.なぜかボリュームが2つ見えているが放置してる.
Macを初期化する方法ーーmacOSをクリーンインストールする手順
Homebrewをインストール
ターミナルからHomebrewをインストールした. Paste that in macOS Terminal prompt.とあるコードをコピペしただけ.
pyenv, pyenv-virtualenvのインストール
これらのページを参考に両方ともインストール.
pyenvでのPython仮想環境の作り方まとめ
pyenv/pyenv-virtualenv/Anacondaを使ってクリーンなPython環境をセットアップ
ページ中で書かれている,以下コマンド実行してセットアップとはいわゆるPATHを通す作業.この作業の正解が理解できていなくて,.bashrcなのか.bashrc_profileなのか分かってない.PATHを通しておかないと,この後の作業でそんなファイルはないと怒られた.
pyenvでPython 3.6.9をインストール
KerasがPython 3.6(まで?)にしか対応していない. したがって3.6.xをインストール.とりあえず最新版を.
PlaidML用のディレクトリと仮想環境の作成,設定
プロジェクトごとに手動で切り替えとか絶対に忘れて事故を起こすので,作業ディレクトリを移動したら自動で切り替わるようにすべき.先程のQiiita記事を参考にすればよし.pyenv versions
すると作成した仮想環境が3.6.x/env/仮想環境名
と仮想環境名
の二重で表示された.一方を消すと他方も消えるため同じものだと分かるが鬱陶しい.
PlaidML, Keras, TensorFlowのインストール,動作確認
PlaidMLを使えば非NVidiaなマシンでもGPUを利用したDeep Learningが可能.ついでにDeep LearningのデファクトスタンダードなTensorFlowもインストールしておく.KerasはPlaidMLやTensorFlowを動かす司令塔.PlaidML用の仮想環境を設定したディレクトリに移動後,pip install -U plaidml-keras
でPlaidMLとKerasの両方ともがインストールできた.詳しくは以下のページを参考.
PlaidMLを使ってMacでDeep Learning:導入編
しでかしたことについて
Catalinaへのアップデート
OSXのアプデがこんなにリスキーだと身をもって体感した.iPad, iPhoneのバックアップとしてicloud写真は活用しているが,MacのライブラリはNASに置いてあるためフォトストリームでしか同期されていない.このため開けなくなった写真ライブラリを復活させるために悪戦苦闘した.幸いNASのバックアップに半年前のライブラリがあったのと,icloud上の写真がギリギリMacの容量を超えなかったため,古いライブラリをMacにscpでコピーしてicloudと同期を行うことで復活できた.
あとことえりがかなりバカになっていてこの文章も打ちにくかった.
HomebrewでPython 3.8を直接インストールした
PlaidMLのインストールと設定してベンチマークも動いて油断した.いざ試しにKerasを使おうとしたら動かなかった.バージョン管理の必要性を学んだ事件.
CatalinaにPython 3.7が付属しているのを知らなかった
これは問題にはなっていないがpyenvで確認したら身に覚えの無いバージョンが入っていて驚いた.自分で入れた3系全部消したはずと思っていたらCatalinaにくっついてるらしい.