로컬에서 모델을 돌릴일이 없어서 환경구축을 안하고 있었는데, 오랜만에 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파일을 다운받은 뒤 압축을 풀어준다.
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/