2021.05.31_(作業メモ)_MacBook Air M1でTensorflow/Keras学習テスト
やりたいこと
M1チップ上でTensorFlow/Keras使って物体識別モデルを作る
注意
作業メモのため、何かの解決を目的としたメモではない
環境構築
miniforgeで仮想環境作って、その中にtensorflow-macos 1.0alpha3をインストール
- miniforgeのarm64版であれば、arm64版の各種ライブラリをそのままインストールできる
- homebrew → pyenv + pipenvインストールして環境構築できなくもないが、arch: arm64で一部ライブラリ(pandasなど)のインストールでつまづくなどハマりどころがある。そのため、当面miniconda使う方が望ましい
前提
- functional APIでResNetベースのCNNモデル構築。
- ImageGeneratorでtrain/validation/test画像を用意
- 画像は40x40px程度。クラスは6種。
結果
- バッチサイズ >= 2でSIGSEGVが発生する。バッチサイズが大きいほどクラッシュ確率が高まる(以下エラーが例。コード見る限り、tensor計算時の型の不整合が発生している?)
E tensorflow/core/framework/types.cc:101] Unrecognized DataType enum value 57
- 以下のコマンドでGPUにて回すこともできないこともないが、batch_sizeが2以上だと発散してnanになる可能性が高い。
from tensorflow.python.compiler.mlcompute import mlcompute
mlcompute.set_mlc_device(device_name='gpu')