M1 MacにTensorFlow + coremltoolsの環境を構築する/TensorFlow PluggableDeviceとは何なのか
とあるTensorFlowのモデルを最新のcoremltools 6.0で変換したく、
手元のM1 MBPにTensorFlow + coremltoolsの環境を構築した際のメモ。
illegal hardware instructionエラー
condaでPython 3.10の環境を用意して、tensorflowをインストール。バージョンはcoremltools 6.0がサポートしている2.8を指定。
% pip install tensorflow==2.8
そのうえでPythonで `import tensorflow` してみると、
なるエラーが発生した。
エラーメッセージでググるとこんな記事が出てきた。
M1のMACのtensorflowでzsh illegal hardwareが出る話 2020/12 - Qiita
手元でやっている状況としては"Rosettaでターミナル起動"しているわけではないが、"M1のMACでAppleが最適化したtensorflow環境"なるものがあるらしいのはこの記事で初めて知った。
tensorflow_macos
リンクが貼られている記事を見に行き、そちらの記事でApple公式アカウントの `tensorflow_macos` なるリポジトリの存在を知る。
このリポジトリには
と既にメンテされない旨が表示されており、さらにREADMEのトップには
と"tensorflow-metal PluggableDevice"なるさらに次世代の実装がある旨が表示されている。
"Learn more here"には以下のURLがリンクされていた。
tensorflow-metal PluggableDeviceとは
"Getting Started with tensorflow-metal PluggableDevice" というページには次のように記載されていた。
tensorflow-metal PluggableDeviceを使用することで、TensorFlowの学習が、Mac上でMetalを利用して高速に行われるようになるらしい。
TensorFlow PluggableDevicesとは何なのか
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/