M1이 들어간 Mac에서는 일반적인 방법으로는 Tensorflow 2.0를 설치하기 어렵습니다. 때문에 다른 방법을 사용해서 설치를 진행해야 합니다.
애플에서 알려주는 텐서플로 설치 방법은 아래와 같습니다. 저의 경우는 해당 방법을 그대로 했을 때 에러가 발생해서 여러 방법을 추가해서 해 본 결과 설치할 수 있었습니다.
https://developer.apple.com/metal/tensorflow-plugin/
텐서플로와 파이토치 설치를 위한 미니콘다 설치
M1 칩에서는 텐서플로와 파이토치를 일반적인 콘다 환경에서 설치하기 어렵기 때문에 미니콘다를 통해 환경설정을 진행해주어야 합니다. 위의 애플 공식사이트에서도 같은 방법을 설명해주고 있기 때문에 믿고 설치하셔도 됩니다.
1. mini-forge를 설치합니다. 위의 애플 웹사이트에서도 다운로드 할 수 있습니다. 다운로드 링크
2. 설치 이후 다음 명령어들을 실행합니다.
chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate
이후 원하는 가상환경 설정 등을 하시고 해당 환경에서 설치를 진행하면 됩니다. 이 페이지에서는 python3.8을 기준으로 임의의 가상환경을 설정하여 작업을 했습니다.
3. pip를 업그레이드합니다. grpcio 설치 관련 에러를 방지할 수 있습니다.
pip install --upgrade pip
pip install --upgrade setuptools
Tensorflow 2 설치하기
위에서 미니콘다를 성공적으로 설치했다면 원하는 가상환경 설정 등을 하시고 해당 환경에서 설치를 진행하면 됩니다. 이 페이지에서는 python3.8을 기준으로 임의의 가상환경을 설정하여 작업을 했습니다.
# 본인의 입맛대로 환경설정을 진행하시면 됩니다.
# 이 포스트는 파이썬 3.8 기준으로 작성되었습니다.
conda create -n test_tf_torch python=3.8
conda activate test_tf_torch
1. pip를 업그레이드합니다. grpcio 설치 관련 에러를 방지할 수 있습니다.
pip install --upgrade pip
pip install --upgrade setuptools
2. tensorflow deps를 설치합니다.
conda install -c apple tensorflow-deps==2.5.0
3. base tensorflow 및 tensorflow metal plugin을 설치합니다.
python -m pip install tensorflow-macos==2.5.0
python -m pip install tensorflow-metal
4. numpy를 재설치합니다. numpy==1.19.2는 tensorflow-macos==2.5.0에서 요구하는 최소 버전입니다. 만약 비슷한 openblas에러가 발생한다면 주석 친 부분도 설치합니다.
# conda install -c conda-forge openblas
pip uninstall numpy
pip install numpy==1.19.2
텐서플로 설치 에러 시
가끔 ERROR: Could not build wheels for h5py, which is required to install pyproject.toml-based projects 의 문구와 함께 h5py 설치 오류가 나는 경우에는 아래의 방법을 사용해 해결할 수 있습니다. https://www.logcg.com/en/archives/3548.html
# Brew로 재설치
brew install hdf5 # 우선 homebrew를 통해 설치. 에러 발생
find /opt -iname "*hdf5.h*" # /opt/homebrew/include/hdf5.h 경로에 존재함을 확인
# Path 설정
export CPATH="/opt/homebrew/include/"
export HDF5_DIR=/opt/homebrew/
# 재설치
python3 -m pip install h5py
만약 텐서플로 버전을 업그레이드 하고 싶다면, 하단의 명령어를 통해 언인스톨을 한 후 원하는 버전으로 업그레이드 하면 됩니다.
# uninstall existing tensorflow-macos and tensorflow-metal
python -m pip uninstall tensorflow-macos
python -m pip uninstall tensorflow-metal
# Upgrade tensorflow-deps
conda install -c apple tensorflow-deps --force-reinstall
Pytorch 설치하기
M1에서 파이토치도 텐서플로와 동일하게 미니콘다 환경에서 설치를 진행해야 합니다. 다행인 점은 텐서플로 설치처럼 다양한 패키지들을 하나하나 설치할 필요 없이 conda install 만 진행하면 설치가 가능합니다.
conda install -c conda-forge pytorch=1.9.0
Pillow 에러 시
설치 후에 가끔 Pillow 패키지 에러가 날 경우가 있는데 다음 버전으로 다시 설치를 진행하면 해결됩니다.
pip install Pillow==6.1