【Python】M1/M2 MacでPython環境の構築(機械学習・データ分析編)

10 min
更新情報

2022年12月7日:
M1/M2 MacでのPytorchのインストール方法
で「Stable(1.13.0)」を選択するように修正しました。(2022年10月28日にM1対応のPyTorch 1.13がリリースされました)
https://pytorch.org/blog/PyTorch-1.13-release/

2022年9月4日:
M1/M2 MacでのPytorchのインストール方法を追加しました。

2022年9月1日:
M1/M2 MacでのTensorflowのインストール方法を追加しました。

こんにちは。ナミレリです。みなさん、MacでPythonは使っていますか?
M1やM2などのApple Siliconを搭載したMacでシンプルで使いやすいPython環境の構築方法を紹介する第2回目で機械学習やデータ分析に必要なライブラリインストール編です。前回はM1やM2 Macにpyenv + Miniforge + venv によるPython環境の構築方法をご紹介しました。下の記事もぜひ合わせてご覧ください。

この記事はこんな人にオススメ

  • M1/M2 MacでPythonによる機械学習やデータ分析の環境を構築したい
  • 機会学習やデータ分析に必要なpythonライブラリをとりあえず知りたい

M1、M2のMacをより便利に使うための初期設定についてはぜひ下記の記事を参考にしてください。

【特集】快適なデスクトップ環境を構築する

快適なデスクトップ環境を構築することをテーマにした特集です。

今回はpyenv + Miniforgeの環境にPythonによる機械学習やデータ分析のライブラリのインストールする方法を紹介します。

この記事でわかること

  • M1/M2 Macで機械学習やデータ分析に必要なpythonライブラリ
  • pythonライブラリのバージョンやインストールしたディレクトリの確認方法
  • デスクトップのファイルをグループに自動で整理する

この記事のMac環境
  • M2 MacBook Air 13.6 インチ
  • macOS Monterey 12.5.1
  • pyenv 2.3.3
  • Miniforge3-4.10.3-10

この記事は、M1/M2のMacでpyenvとMiniforgeがインストールされていて、pyenvでPythonのバージョンをMiniforgeに設定されていることが前提となります。

M1/M2のMacでpyenvとMinigorgeをインストールしていない方は下記をご覧ください。

この記事でインストールするパッケージ・モジュール・ライブラリ一覧

機械学習・データ分析系

名称内容
numpy数値計算を効率的に行うための拡張モジュール
pandasデータ解析を支援する機能を提供するライブラリ
scipy数学、科学、工学のための数値解析ソフトウェア、高レベルな科学と
工学のモジュールを集めたもの
scikit-learn機械学習ライブラリで数値計算ライブラリのNumPyとSciPyとやり取りするよう
設計されている
matplotlibPythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリ
seabornMatplotlibの機能をより美しく、より簡単に実現するための可視化ライブラリ
opencvインテルが開発した画像・動画に関する処理機能をまとめたライブラリ
TensorflowGoogleが開発した機械学習に用いるためのライブラリ
PyTorchFacebook(現Meta)のAI Reserarch Lab(FAIR)で開発された深層学習用フレームワーク
機械学習・データ分析系のインストールするパッケージ・モジュール・ライブラリ一覧

機械学習の初心者に向けた、「Python3年生 機械学習のしくみ」はオススメの書籍です。

Udemyの機械学習コース

Pythonの機械学習を学びたい方におすすめ!

講座買い切り型で、視聴期限なし。自分のペースで学べる。

現場で活躍されているプロが教えるコースを選べます。

NumPyのインストール

NumPyとは?

NumPyはPythonにおいて数値計算を効率的に行うための拡張モジュールです。Numpyと合わせてPandasやMatplotlibと一緒に良く使われます。ナムパイと読みます。

NumPyを使うと、効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供することができます。

NumPyのインストール

NumPyは、condapip、MacやLinuxのパッケージマネージャ、またはソースからインストールできますが、最も簡単にインストール・管理できるのがcondaです。

NumPyをcondaでインストールします。


conda install numpy "libblas=*=*accelerate"

下記のForumを見て"libblas=*=*accelerate"のオプションを付けてインストールしました。ベンチマークがM1MAXでは4倍、M2Airでは2倍の速さになりました。ただし他のライブラリに影響がある可能性もあるので、仕事で使う環境などにはオプションなしの方が安全だと思います。

BLASについては下のwikiが参考になります。

Basic Linear Algebra Subprograms(BLAS)は数値線形代数の基礎的演算に必要な関数を定義するAPIである[1]。ベクトル・行列演算を含む38の関数からなるLevel 1 BLASが1979年に発表されたのち[2]、Level 2 および Level 3 まで拡張された。多数の実装が作成・整備され続けており、この分野におけるデファクトスタンダードとなっている。BLASの基礎演算を利用してLAPACKなどの上位パッケージが構築されており、科学技術計算・高性能計算で多用される。


BLASの関数を多用するソフトウェアにおいてBLAS実装(ライブラリ)の質は速度に直結する。高度な最適化は実装が動くハードウェアにも依存するため、特定CPUに特化したライブラリが提供される場合もある(インテルCPU向け: Intel Math Kernel Library)。オープンソースの最適化 BLAS 実装として OpenBLAS や ATLAS(英語版) がある。


LINPACK ベンチマークの性能は、BLAS のサブルーチンである DGEMM(倍精度汎用行列乗算)の性能に大きく影響される。

https://ja.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms

NumPyのインストール確認

NumPyのバージョンとインストールされたディレクトリを確認してみます。


import numpy as np
print(np.__version__)
1.22.4
print(np.__file__)

Numpyの定番オススメ書籍:
Pythonによるデータ分析入門 第2版
NumPyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法

pandasのインストール

pandasとは?

pandasは、データを簡単かつ直感的に操作できるように設計された、高速で柔軟で表現力豊かなデータ構造を提供するPythonパッケージです。パンダスと読みます。

pandasの2つの主要なデータ構造、Series(1次元)とDataFrame(2次元)は、金融、統計、社会科学、および工学の多くの分野で使われています。

pandasのインストール

pandasも最も簡単にインストール・管理できるのがcondaです。

pandasをcondaでインストールします。


conda install pandas

pandasのインストール確認

pandasのバージョンとインストールされたディレクトリを確認してみます。


import pandas as pd
print(pd.__version__)
1.4.4
print(pd.__file__)

Pandasの定番オススメ書籍:Pythonによるデータ分析入門 第2版

SciPyのインストール

SciPyとは?

Scipyとは高度な科学技術計算をおこなうことが可能なライブラリで、サイパイと読みます。統計などの高度な科学技術計算を簡単に実行することができます。

クラスター分析、物理定数、離散フーリエ変換、数値積分、線形代数、などの科学技術計算が可能となります。

SciPyのインストール

SciPyも最も簡単にインストール・管理できるのがcondaです。

SciPyをcondaでインストールします。


conda install scipy

SciPyのインストール確認

SciPyのバージョンとインストールされたディレクトリを確認してみます。


import scipy
print(scipy.__version__)
1.9.1
print(scipy.__file__)

SciPyの定番オススメ書籍:NumPy&SciPy数値計算実装ハンドブック

scikit-learnのインストール

scikit-learnとは?

scikit-learnは機械学習ライブラリで数値計算ライブラリのNumPyとSciPyとやり取りするよう
設計されています。サイキット・ラーンと読みます。

教師あり学習、教師なし学習に関するアルゴリズム(サポートベクターマシン、ランダムフォレスト、回帰、クラスタリングなど)が一通り利用出来る上、サンプルのデータセット(トイデータセットと呼びます)が豊富に揃っています。

scikit-learnのインストール

scikit-learnも最も簡単にインストール・管理できるのがcondaです。

scikit-learnをcondaでインストールします。


conda install scikit-learn

scikit-learnのインストール確認

scikit-learnのバージョンとインストールされたディレクトリを確認してみます。


import sklearn
print(sklearn.__version__)
1.1.2
print(sklearn.__file__)

scikit-learnのオススメ書籍:scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

Matplotlibのインストール

Matplotlibとは?

MatplotlibはPythonおよびその科学計算用ライブラリであるNumPyのためのグラフ描画ライブラリです。

Matplotlibを使うことで、グラフの描画やデータの可視化が簡単に行えます。
折れ線グラフ、ヒストグラムや散布図など様々なグラフを表現できます。

Matplotlibのインストール

Matplotlibも最も簡単にインストール・管理できるのがcondaです。

Matplotlibをcondaでインストールします。


conda install matplotlib

Matplotlibのインストール確認

Matplotlibのバージョンとインストールされたディレクトリを確認してみます。


import matplotlib as mpl
print(mpl.__version__)
3.5.3
print(mpl.__file__)

Matplotlibの定番オススメ書籍:Matplotlib&Seaborn実装ハンドブック

seabornのインストール

seabornとは?

seabornは、matplotlibをベースにしたPythonデータビジュアライゼーションライブラリです。

seabornは、matplotlibの上に構築され、pandasのデータ構造と密接に統合されています。

seabornのインストール

seabornも最も簡単にインストール・管理できるのがcondaです。

seabornをcondaでインストールします。


conda install seaborn

seabornのインストール確認

seabornのバージョンとインストールされたディレクトリを確認してみます。


import seaborn as sns
print(sns.__version__)
0.12.0
print(sns.__file__)

seabornの定番オススメ書籍:データ分析者のためのPythonデータビジュアライゼーション入門

OpenCVのインストール

OpenCVとは?

インテルが開発した画像・動画に関する処理機能をまとめたライブラリです。

OpenCVを使用することで、フィルター処理、オブジェクト追跡、領域分割、パノラマ合成、カメラキャリブレーション物体認識、機械学習等の処理をPythonで行うことができます。

OpenCVのインストール

OpenCVも最も簡単にインストール・管理できるのがcondaです。

OpenCVをcondaでインストールします。


conda install opencv

OpenCVのインストール確認

OpenCVのバージョンとインストールされたディレクトリを確認してみます。


import cv2
print(cv2.__version__)
4.6.0
print(cv2.__file__)

OpenCVの定番オススメ書籍:OpenCVではじめよう ディープラーニングによる画像認識

Tensorflowのインストール

Tensorflowとは?

Googleが開発した機械学習に用いるためのライブラリです。

機械学習モデルの開発およびトレーニングに役立つオープンソースのコアライブラリ。主にディープラーニングのフレームワークとして知られています。

Tensorflowのインストール

Tensorflowには、以下の3つのモジュールが必要です。
・tensorflow-deps (condaでインストール)
・tensorflow-macos (有効化した仮想環境内でpipでインストール)
・tensorflow-metal (有効化した仮想環境内でpipでインストール)

venvでの仮想環境構築方法はこちらをご覧ください。


conda install -c apple tensorflow-deps
cd venv_test
source .venv/bin/activate


pip install tensorflow-macos
pip install tensorflow-metal

Tensorflowのインストール確認

Tensorflowのバージョンとインストールされたディレクトリを確認してみます。


import tensorflow
print(tensorflow.__version__)
2.9.2
print(tensorflow.__file__)

protobuf packageのエラーとなった場合

以下のエラーメッセージが表示されTensorflowがインポートできない場合があります。2つの解説策がエラーメッセージに表示されます。

If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

【解決策1】1. Downgrade the protobuf package to 3.20.x or lower.

解決策の1つ目としてprotobufのバージョンを3.20系にダウングレードする。
protobufについてはこちらの記事が詳しいです。

以下のコマンドでprotobufのバージョンを3.20系にダウングレードします。


pip install -U protobuf~=3.20.0

【解決策2】2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

解決策の2つ目として下記の環境変数を設定します。ただ処理速度が遅くなるようなので解決策1がオススメです。

以下のコマンドでPROTOCOL_BUFFERS_PYTHON_IMPLEMENTATIONの環境変数を設定します。


export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

環境変数を設定した後に、pythonインタプリタでtensorflowがインポートできることを確認します。


python


Python 3.9.13 | packaged by conda-forge | (main, May 27 2022, 17:00:33) 
[Clang 13.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
import tensorflow

Tensorflowの定番オススメ書籍:
Python,TensorFlowで実践する深層学習入門
物体・画像認識と時系列データ処理入門

PyTorchのインストール

PyTorchとは?

Facebook(現Meta)のAI Reserarch Lab(FAIR)で開発された深層学習用フレームワーク。

PyTorchはシンプルで使いやすく、柔軟性が高くメモリの効率的な利用、動的な計算グラフなどについても高い評価を得ています。Pythonで利用すると処理速度が速くなります。

PyTorchのインストール選択

PyTorchのインストールは、公式サイトのpytorch.orgで環境を選択することでインストールコマンドを表示してくれます。とても便利です。

  1. STEP

    公式サイトのpytorch.orgにアクセス

    pytorch.orgの環境選択画面
    pytorch.orgの環境選択画面
  2. STEP

    PyTorch Buildの選択

    M1/M2のMacに向けてのPyTorchは現在もPreview版ですが、PyTorchをApple Silicon GPUで実行させたいので「Preview(Nightly)」を選択します。

    M1/M2のMacに向けのPyTorch 1.13 がリリースされました。(2022年10月28日)
    Stable(1.13.0)」を選択します。

  3. STEP

    Your OSの選択

    もちろん「Mac」を選択します。

  4. STEP

    Packageの選択

    condaでもpipでもインストールできます。今回は「Conda」を選択します。

  5. STEP

    Languageの選択

    もちろん「Python」です。

  6. STEP

    Compute Platformの選択

    Default」です。

  7. STEP

    表示されたインストールコマンドの実行

    「Run this command:」にインストールするためのコマンドが表示されます。

    conda install pytorch torchvision torchaudio -c pytorch

venvでの仮想環境構築方法はこちらをご覧ください。

Udemyの機械学習コース

Pythonの機械学習を学びたい方におすすめ!

講座買い切り型で、視聴期限なし。自分のペースで学べる。

現場で活躍されているプロが教えるコースを選べます。

PyTorchのインストール

先程の表示されたコマンドでインストールします。(condaでインストール)


conda install pytorch torchvision torchaudio -c pytorch

PyTorchのインストール確認

PyTorchのバージョンとインストールされたディレクトリを確認してみます。


import torch
print(torch.__version__)
1.13.0
print(torch.__file__)

PyTorchがM1/M2のGPUを利用できるか確認

PyTorchがM1/M2のMetal Performance Shaders(MPS)が有効になっているか確認してみます。


import torch
print(torch.backends.mps.is_available())
True
print(torch.backends.mps.is_built())
True

両方ともTrueであればMetal Performance Shaders(MPS)が有効になっておりM1/M2のGPUを利用できます。

PyTorchの定番オススメ書籍:最短コースでわかる PyTorch &深層学習プログラミング

最後に

最後まで読んでいただきありがとうございます。今回の【Python】M1/M2 MacでPython環境の構築(機械学習・データ分析編)はいかがでしたでしょうか。M1やM2などのApple Siliconを搭載したMacで機械学習やデータ分析に必要なライブラリのインストールを紹介しました。次回以降は株価分析とスクレイピングに必要なライブラリのインストール方法を紹介予定です。みなさんのMacライフに少しでもお役に立てたら幸いです。

機械学習の初心者に向けた、「Python3年生 機械学習のしくみ」はオススメの書籍です。

使ってほしい至極のキーボード

最高の打鍵感。スコスコと静かに速く、そして気持ち良くタイピングができます。もうタイピングが楽しくてどうしようもなくなります。つや消しの高級感もたまりません。サラサラしていて触り心地も最高です。

PFU キーボード HHKB Professional HYBRID Type-S 日本語配列/雪(無刻印)

定番おすすめ記事

M1、M2のMacでPythonの開発環境を構築することや、分野別のライブラリのインストール方法を下記の記事でまとめています。ぜひご覧ください。

Udemyの人工知能と機械学習講座

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2023年最新版】

講座買い切り型で、視聴期限なし。自分のペースで学べる。

現場で活躍されているプロが教えるコースを選べます。

Udemyの人工知能と深層学習の講座

ディープラーニング : Pythonでゼロから構築し学ぶ人工知能(AI)と深層学習の原理

講座買い切り型で、視聴期限なし。自分のペースで学べる。

現場で活躍されているプロが教えるコースを選べます。

カテゴリー:
関連記事