TIP
- M3チップのMacbook Airを購入したので、MiniforgeでのPython環境構築方法について記載します。
はじめに
詳細情報は、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を押下します。
-
で閉じます。
-
acceptしますか、というメッセージにyesと入力します。
-
このパスに入れていいか、というメッセージが出るのでそのままEnterを押下します。
-
ターミナルにログインしたときに自動で起動するようにするか、というメッセージが出るので、yesと入力します。
これでMiniforgeのインストールが完了します。 簡単だね。
試しに機械学習サンプルを動かしてみよう
環境構築
-
新しいConda環境の作成
TensorFlowと必要なパッケージをインストールするための新しい環境を作成します。
Terminal window # Miniforgeのインストールが完了したら、以下のコマンドを実行conda create -n tf_env python=3.9conda activate tf_env -
TensorFlowのインストール
Apple Silicon向けにビルドされたTensorFlowをインストールします。
Terminal window # TensorFlowのApple Silicon向けビルドをインストールconda install -c apple tensorflow-depspip install tensorflow-macospip install tensorflow-metalpip install matplotlib
簡単な機械学習のサンプルコード
ここでは、MNISTデータセットを使用して手書き数字認識を行うシンプルなニューラルネットワークを実装します。
import tensorflow as tffrom tensorflow.keras import datasets, layers, modelsimport matplotlib.pyplot as pltimport 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)に保存します。 -
スクリプトを実行します。
Terminal window python mnist_example.py
これで、M3チップの力を活用してTensorFlowを使用した簡単な機械学習のサンプルを動かすことができます。
出力結果は、以下のようになりました。 M3チップ、そこそこ高速なのでは?
Epoch 1/51875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 453us/step - accuracy: 0.8595 - loss: 0.4835Epoch 2/51875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 454us/step - accuracy: 0.9570 - loss: 0.1489Epoch 3/51875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 467us/step - accuracy: 0.9689 - loss: 0.1039Epoch 4/51875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 461us/step - accuracy: 0.9744 - loss: 0.0822Epoch 5/51875/1875 ━━━━━━━━━━━━━━━━━━━━ 1s 456us/step - accuracy: 0.9774 - loss: 0.0710313/313 - 0s - 316us/step - accuracy: 0.9777 - loss: 0.0720
Test accuracy: 0.9776999950408936Time: 4.895736932754517[s]まとめ
今回は、【機械学習をする前提で】M3チップ Macbook AirでMiniforgeを使ってPython環境を構築する方法について紹介しました。
M1,M2チップでも同様に構築可能なので、これから機械学習を勉強したいという方は試してみてね。