Deep Learning/etc

Deep Learning/etc

Mac M1 tensorflow, pytorch 설치하는 방법, Miniforge 사용하기

김쪼욘 2021. 6. 15. 23:16

로컬에서 모델을 돌릴일이 없어서 환경구축을 안하고 있었는데, 오랜만에 M1에서 tensorflow를 설치하고 import하니 zsh: illegal hardware instruction 오류가 떴다. conda install tensorflow하면 되는건 줄 알았는데 아직 안되는 것 같다. 검색해 보니 tensorflow 2.4 정식 버전이 intel mac(아마도 로제타버전)하고만 호환이 되는 것 같고 이외에도 pip로 설치할 수 없는 패키지들이 많다. 2020년 12월 글인데 아직도 그렇다니 .. 언젠간 호환되겠지..

 

그래서 대략 8시간동안의 삽질을 통해 구축한 conda installer중 miniforge를 사용한 방법을 공유하고자 한다 : )

그냥 코랩쓰거나 서버쓰는게 마음편할 것 같지만 혹시 필요한 사람이 있다면 도움이 되길..

 

주의사항

내가 엄청 삽질을 한 이유가 Anaconda가 깔려있어서였다. Miniforge와 Anaconda두개가 같이 설치되어 있으면 충돌이 생기는 것 같다. 확실히는 모르겠지만 Anaconda를 삭제하고 Miniforge 단독으로만 사용하는게 깔끔할 것 같다.

 

0. anaconda가 깔려있는 경우 삭제하기

% cd
% sudo rm- rf anaconda
% sudo rm -rf .anaconda_backup
% sudo rm -rf ~/.condarc ~/.conda ~/.continuum

 

혹시 모르니 경로도 다 삭제해준다. zsh를 사용하는 경우는 두번째 명령어 까지 실행한다.

파일이 열리면 <<initialized~~>> 로 시작하는 부분이 있는데 이걸 지워주면 된다.

% open -e .bash_profile
% open -e .zshrc

위에 과정을 모두 마치면 Anaconda가 설치되어 있는 폴더도 삭제해준다(내 로컬의 경우 opt/Anaconda3).

 

1. Homebrew설치 (설치하지 않은 경우)

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

# 혹시 뒤에서 오류나는 경우 ,__username__ : 자기 local username
% echo 'eval $(/usr/loack/bin/brew shellenv)' >> /Users/__username__/.zprofile
% eval $(/usr/loacl/bin/brew shellenv)

 

2. Miniforge 설치

brew install miniforge

설치 된 후에 자기가 사용하는 terminal에 init을 해준다.

% conda init bash
% conda init zsh

% open -e .bash_profile
% open -e .zshrc

설치 후에 bash_profile, zshrc를 열어서 확인해보면 '/opt/homebrew/Caskroom/miniforge' 경로 아래로 설치된 걸 확인할 수 있다.

 

3. Tensorflow설치

 

1) 앞으로 사용한 가상환경을 만들어 준다. 

가상환경을 만들어 주고 activate를 해준 상태로 아래 과정을 쭉 따라가야 한다!

% conda info --envs
% conda create -n "tf" python==3.8.5
% conda activate tf

 

2) 아래 링크를 클릭해 tensorflow파일을 다운받은 뒤 압축을 풀어준다.

https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha3/tensorflow_macos-0.1alpha3.tar.gz

 

3) 압축을 푼 뒤 arm64폴더로 이동한다.

% cd ~/Downloads/tensorflow_macos/arm64

 

4) 아래 코드를 쭉 실행해 설치해준다.

# Install specific pip version and some other base packages
% pip install --force pip==20.2.4 wheel setuptools cached-property six

# Install all the packages provided by Apple but TensorFlow
% pip install --upgrade --no-dependencies --force numpy-1.18.5-cp38-cp38-macosx_11_0_arm64.whl grpcio-1.33.2-cp38-cp38-macosx_11_0_arm64.whl h5py-2.10.0-cp38-cp38-macosx_11_0_arm64.whl tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl

# Install additional packages
% pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard

# Install TensorFlow
% pip install --upgrade --force --no-dependencies tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl

 

4. Pytorch 설치

 

pytorch도 함께 설치하고자 하는 경우 앞서 만든 가상환경에 아래 코드를 실행시키면 된다.

다른 패키지도 아래 명령어 사용해서 설치해주면 된다.

% conda install -c conda-forge pytorch
// torchtext 설치하기
% conda install -c pytorch torchtext

 

여기까지 아무 오류없이 실행되었다면 tf라는 이름의 가상환경에 tensorflow와 pytorch 설치가 완료된 것이다! 와!

 

 

+ transformer 패키지 사용시 오류가 다시 생김 :)

 

참고자료

https://c-juhwan.github.io/posts/m1-pytorch-installation/

https://velog.io/@taki0412/M1-Anaconda-Tensorflow-설치

https://trayansh.medium.com/setting-machine-learning-environment-on-m1-mac-apple-silicon-959836bf494d

https://pinkwink.kr/1355