【M3 Macbook Air】MiniforgeでPython機械学習環境を構築する【2024】
TIP
- M3チップのMacbook Airを購入したので、MiniforgeでのPython環境構築方法について記載します。
WARNING
目次
はじめに
詳細情報は、githubのリポジトリをチェック。
https://github.com/conda-forge/miniforge
該当するアーキテクチャはarm64 (Apple Silicon)なのですが、下のほうにもっと楽なコマンドが書いてあるので、ターミナルが使える方はそちらのほうが楽です。
早速手順を記載します
ターミナルを立ち上げます。
以下コマンドを入力します。
wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh
Enterを押下します。
:qで閉じます。
acceptしますか、というメッセージにyesと入力します。
このパスに入れていいか、というメッセージが出るのでそのままEnterを押下します。
ターミナルにログインしたときに自動で起動するようにするか、というメッセージが出るので、yesと入力します。
これでMiniforgeのインストールが完了します。 簡単だね。
試しに機械学習サンプルを動かしてみよう
環境構築
新しいConda環境の作成
TensorFlowと必要なパッケージをインストールするための新しい環境を作成します。
# Miniforgeのインストールが完了したら、以下のコマンドを実行 conda create -n tf_env python=3.9 conda activate tf_env
TensorFlowのインストール
Apple Silicon向けにビルドされたTensorFlowをインストールします。
# TensorFlowのApple Silicon向けビルドをインストール conda install -c apple tensorflow-deps pip install tensorflow-macos pip install tensorflow-metal pip install matplotlib
簡単な機械学習のサンプルコード
ここでは、MNISTデータセットを使用して手書き数字認識を行うシンプルなニューラルネットワークを実装します。
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
import time
start_time = time.time()
# MNISTデータセットのロード
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
# データの正規化
train_images, test_images = train_images / 255.0, test_images / 255.0
# モデルの構築
model = models.Sequential([
layers.Flatten(input_shape=(28, 28)),
layers.Dense(128, activation='relu'),
layers.Dropout(0.2),
layers.Dense(10)
])
# モデルのコンパイル
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
# モデルの訓練
model.fit(train_images, train_labels, epochs=5)
# モデルの評価
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print(f'\nTest accuracy: {test_acc}')
print(f'Time: {time.time()-start_time}[s]')
実行手順
上記のコードをファイル(例:
mnist_example.py
)に保存します。スクリプトを実行します。
python mnist_example.py
これで、M3チップの力を活用してTensorFlowを使用した簡単な機械学習のサンプルを動かすことができます。
出力結果は、以下のようになりました。 M3チップ、そこそこ高速なのでは?
Epoch 1/5
1875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 453us/step - accuracy: 0.8595 - loss: 0.4835
Epoch 2/5
1875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 454us/step - accuracy: 0.9570 - loss: 0.1489
Epoch 3/5
1875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 467us/step - accuracy: 0.9689 - loss: 0.1039
Epoch 4/5
1875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 461us/step - accuracy: 0.9744 - loss: 0.0822
Epoch 5/5
1875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 456us/step - accuracy: 0.9774 - loss: 0.0710
313/313 - 0s - 316us/step - accuracy: 0.9777 - loss: 0.0720
Test accuracy: 0.9776999950408936
Time: 4.895736932754517[s]
まとめ
今回は、【機械学習をする前提で】M3チップ Macbook AirでMiniforgeを使ってPython環境を構築する方法について紹介しました。
M1,M2チップでも同様に構築可能なので、これから機械学習を勉強したいという方は試してみてね。