📝
macOS用のTensorFlowがいつの間にかリリースされてた
macOSとTensorFlow
macにはNVIDIAのGPUが搭載されていないため、prebuildのパッケージは長らくの間CPUバージョンのみでした。1年ほど前にApple自身がmacOSのTensorFlowを公開していましたが、しばらくalpha版のみで留まっておりました。
ところが、先日覗きにいったところリポジトリがアーカイブ(凍結)されており、代わりのインストール方法が公開されていました。
どうやらTensorFlow 2.5でGPU accelarationなどの専用ハードウェアデバイスによる処理高速化をTensorFlow本体と切り離せるように変更が入ったのに合わせる形で、Metalを介したGPU処理をPluggableDeviceとしてtensorflow-metalにまとめたようです。
TensorFlowのリリースノート:Release 2.5.0より当該部分を引用します。
PluggableDevice
Third-party devices can now connect to TensorFlow as plug-ins through StreamExecutor C API.
and PluggableDevice interface.
Add custom ops and kernels through kernel and op registration C API.
Register custom graph optimization passes with graph optimization C API.
x64: AMDしか手元になかったのですが、確かにGPUを叩くように切り替わりました。ただ、特に処理時間を測った分けではないのです、悪しからず。また、M1ではcondaを使って追加の依存モジュールをインストールする必要があるみたいですが、手元に実機がないのでよく分かりません。誰か教えて下さい。
モデルのシリアライズに注意?
つい先日、Graphをprotobuf形式でシリアライズする方法を紹介しました。
ただ、tensorflow-metalを使った場合はシリアライズできないopを含んでしまうためか、正しくエクスポートできませんでした。なお、SavedModelのフォーマットだと大丈夫そうでした。
Discussion