このリポジトリでは、Apple Silicon(M2)搭載の Mac Studio 上で、Miniforge と Conda を使用して PyTorch 環境を構築し、MPS(Metal Performance Shaders)バックエンドを利用するための手順とサンプルコードをまとめています。さらに、MNIST データセットを用いたディープラーニングモデルのウォークスルー(学習、評価、視覚的な結果確認)も提供しています。
- 対象プラットフォーム: Apple Silicon (M2) Mac Studio
- 目的:
- PyTorch を用いたディープラーニング開発環境の構築
- MPS バックエンドの動作確認
- CNN を用いた MNIST 手書き数字認識タスクの実装と視覚的評価
- 主なツール:
- Miniforge (Conda 環境管理ツール)
- PyTorch (ディープラーニングフレームワーク)
- pip
- matplotlib (ビジュアル表示用)
- macOS(Apple Silicon 対応)
- Homebrew のインストール済み
- ターミナル(zsh 推奨)
Homebrew を利用して Miniforge をインストールします。
brew install miniforge
インストール完了後、以下のメッセージが表示されるので、シェルを初期化します。
conda init "$(basename "${SHELL}")"
設定を反映させるため、シェルを再起動するか、以下のコマンドで再読み込みしてください。
source ~/.zshrc
新規の Python 環境(例: pytorch_env
)を作成し、アクティベートします。
conda create -n pytorch_env python=3.9
conda activate pytorch_env
pip を使用して、MPS サポート対応の PyTorch、torchvision、torchaudio、さらにビジュアル表示に必要な matplotlib をインストールします。
pip install torch torchvision torchaudio matplotlib
以下のコードを check.py
として保存し、MPS デバイスが利用可能か確認します。
import torch
if torch.backends.mps.is_available():
print("MPSデバイスが利用可能です!")
else:
print("MPSデバイスは利用できません。")
実行例:
python check.py
出力例:
MPSデバイスが利用可能です!
次に、MPS を利用した簡単なテンソル計算のサンプルコードを sample.py
として保存します。
import torch
# 使用可能なデバイスを設定
device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
print(f"使用デバイス: {device}")
# ランダムなテンソルの生成と計算
x = torch.randn(3, 3, device=device)
y = torch.randn(3, 3, device=device)
z = x + y
print("計算結果:\n", z)
実行例:
python sample.py
出力例:
使用デバイス: mps
計算結果:
tensor([[ 0.4715, -1.0022, -0.3917],
[ 1.7549, 0.8535, 0.2699],
[ 2.9066, -2.1618, 2.4611]], device='mps:0')
このセクションでは、MNIST データセットを用いた CNN モデルの学習、評価、そして学習済みモデルを活用した予測結果の視覚的確認方法について解説します。
-
deeplearning/model.py
CNN モデルの定義を行います。 -
deeplearning/train.py
トレーニングと評価のためのルーチンを記述します。 -
deeplearning/train_mnist.py
データセットの読み込み、モデルの構築、トレーニングおよび評価を実行するメインスクリプトです。 -
deeplearning/visualize.py
学習済みモデルを用いて、テスト画像の予測結果を 3x3 のグリッドで視覚的に確認するコードです。
-
環境のアクティベート
Conda 環境(例:pytorch_env
)をアクティベートします。conda activate pytorch_env
-
モデルの学習と保存
MNIST データセットのダウンロードおよびトレーニングを実行します。
実行後、モデルのパラメータはmnist_cnn.pth
として保存されます。python deeplearning/train_mnist.py
-
学習結果のビジュアル表示
学習済みモデルを用いて、テスト画像の予測結果を確認します。
3x3 のグリッドに、各画像の予測ラベルと正解ラベルが表示されます。python deeplearning/visualize.py
- PyTorch を用いたより複雑なモデルの構築・学習
- torchvision やその他ライブラリを活用したデータセットの取り扱い
- ハイパーパラメータの最適化やモデル改善
- MPS バックエンドを活かした高速な計算処理のさらなる最適化
MIT
ご質問や改善提案は、Issue または Pull Request でお気軽にお知らせください。