1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【社内 LT 会資料】M1 Mac でディープラーニングによる画像分類をやってみたら速度は出たが結果が NVIDIA と異なった

Last updated at Posted at 2023-12-07
1 / 18

注意事項

  • この資料は画像認識に関係の無い会社内でのLT会のもののため、基本的な内容から説明し詳細をかなり端折っています。
  • ひとつだけのモデルとデータセットを使った検証なので、これを持ってすべてのケースで Apple シリコンによるディープラーニングは良くないという主張はしません。ひとつの技術的雑談のネタとしての位置づけです。

ディープラーニングによる画像分類やってます


画像分類とは

画像を渡すとそれが何であるか複数の候補のうちのどれかを教えてくれる。


画像分類の事例

Google Cloud では株式会社LIFULLの導入事例が紹介されている。
不動産の室内画像に対して、洗面台、キッチン、リビングなどのラベルをつけてくれて、サイトへの登録作業を省力化する。


私の活用方法

スプラトゥーンの録画による振り返りの効率化


分類モデルの作成には NVIDIA の GPU が搭載されているゲーミングPCを使用

一般的には NVIDIA の GPU が搭載された PC でモデルを作成する。
ゲームの3Dグラフィック描画もディープラーニングもたくさんの行列演算なので、GPU との相性が良い。

NVIDIA の株価がエグい理由(Google 検索より引用)

スクリーンショット 2023-12-05 20.46.32.png


分類モデルを作るプログラムはこんな感じ

画像をありもののニューラルネットワークのモデルに5万枚読み込まされているだけ。


M1 Ultra 搭載の Mac Studio も手元にある

ディープラーニングは Windows の WSL2 上の Ubuntu を使っているが、普段スマホアプリ開発で Mac を使っている私からすると、キーバインドの違いから使いづらい。
Apple シリコンも GPU を内蔵している。
Mac で画像分類モデルを作れるならば、それで良いと思った。


まずは Windows PC と Mac のスペック紹介

Windows PC Mac
製品名 HP OMEN 30L Mac Studio
GPU RTX 3080 M1 Ultra 64コアGPU
CPU Core i7-10700KF M1 Ultra 20コアCPU
メモリ DDR4-3200MHz 32GB 128 GB
購入時期 2021年9月 2022年3月
買ったときの値段 25万円 72万円

学習速度の比較

GPU 名 NVIDIA RTX 3080 Apple M1 Ultra
時間 53分35秒 1時間02分53秒

対象の学習モデルはこちら


Mac でディープラーニングは悪くないのでは?

価格を考えると Windows PC が良いが、Mac も使う必要があり、2台維持するのが大変な場合はディープラーニングを Mac でやるのありかも?


しかし計算結果が異なる

image.png

縦軸は正解率 = 正しく分類された枚数/検証用画像枚数
横軸は学習の進み度合い

Apple M1 Ultra の方は結果が安定しない。


原因の推測

推測だがニューラルネットワークのオペレータを GPU に対する低レベルAPI(Metal)に変換する部分に不具合がある可能性がある。(その後の対応案は後述)


結論

個人的な結論だが、ディープラーニングもやるモバイルアプリ開発者は Windows 機と Mac の2台を維持しないといけない。


以下、細かくて LT 会では説明しない補足


使用パッケージ

pyproject.toml
tensorflow = "^2.15.0"
numpy = "^1.26.1"
scikit-learn = "^1.3.2"
pandas = "^2.1.2"
h5py = "^3.10.0"
tqdm = "^4.66.1"
tensorflowjs = "^4.12.0"
pillow = "^10.1.0"
tensorflow-metal = "^1.1.0"

M1 Mac では TensorFlow を 2.15.0 にしないとインストールできなかった。GPU を使用するために tensorflow-metal パッケージを使用する。


Apple の開発エコシステムへの貢献を考える

理想的な振る舞いとしては、再現可能なミニマムなコードを作成して、Apple Developer Forums に報告することだが、他に優先したいことがあるので、この件はこれで終了にする。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?