필자의 경우, 2021년 7월에 M1 MacBook Pro 를 구매했었다. 아무 것도 모르고, 아무 생각 없이, 그저 설레는 마음으로 ANACONDA를 비롯해서 이것저것을 설치했었는데 ... 결과적으로 이 M1 MacBook Pro를 2번인가 밀었다.
M1의 경우, pip install tensorflow 이나 pip install tnesorflow-gpu 같은 명령어로 설치하면 안 된다. (쉽게 말하면) Apple에서 자체적으로 디자인하고 제작한 M1(CPU-8CORE & GPU-8CORE) 특성상 다른 CPU와 GPU와는 연산(작동)방식이 다르기 때문에 일반적인 방법으로 ANACONDA에서 tensorflow를 설치하면, 연산이 안 되거나 에러가 난다. 그래서 Apple에서 '공식적'으로 ANACONDA가 아닌 'miniforge3'를 지원하고 있다.
또한, Apple에서 GitHub 채널을 통해서 M1 맥북(BigSur OS)에 최적화화된 TensorFlow를 제작하여 제공하고 있는데, (M1에서 tensorflow를 사용하고 싶다면) Apple 자체제작 tensorflow로 설치해야한다.
필자의 경우, ANACONDA 대신 miniforge3를 설치하고, 가상환경을 생성하고, tensorflow와 기타 여러 라이브러리를 설치하고 사용 중이다.
M1 tensorflow 설치하는 포스팅을 총 3부작으로 이루어질 것이다. 이 포스팅은 M1 맥에 miniforge3를 설치하는 것과 conda 가상환경 생성에 대해서 다룰 것이다. M1 세팅 Part0. Download First, M1 세팅 Part1. iTerm2 & Brew 깔끔한 버전, M1 세팅 Part2. 기본적인 ZSH 세팅과 brew install를 진행한 것을 전제로 한다.
: iTerm2를 실행하고, 다음 명령어로 Downloads로 이동해보자.
cd Downloads
: Downloads 폴더로 이동한 뒤, 다음 명령어로 설치를 실행해보자.
bash Miniforge3-MacOSX-arm64.sh
: 위 2)을 마쳤다면, 바로 다음 화면이 뜰 것이다.
그래야 다음 스샷처럼 iTerm2(을 다시 켰을 때 iTerm2)에서 conda가 (이쁜 컬러도 들어가고) 인식이 잘 될 것이다.
iTerm2 에서 다음 명령어로 설치가 가능하다.
brew install miniforge
혹시 모르니 스크린샷을 첨부하겠다.
가장 하단에 보이는 명령어를 실행하면, miniforge3가 설치 될 것이다.
brew를 통해서 miniconda 설치 이후에 바로 아래 코드처럼 conda init을 해야할 것이다. (여기 참고)
conda init zsh
brew search minifoge
Homebrew에서 miniforge를 검색하는 명령어이다.
brew info miniforge
Homebrew를 통해 설치되는 miniforge의 정보를 볼 수 있다. 'Miniforge3-4.10.3-2-MacOSX-arm64.sh' 파일로 설치되는 것을 알 수 있고, 파일명의 'arm64' 문자열이 있는 것을 보면, M1 맥북에 맞는 파일로 설치된다는 것을 알 수 있다.
conda create -n krc python=3.8
: python 3.8 버전의 krc라는 이름의 conda 가상환경을 생성하는 명령어이다. conda가상환경에서 create(생성하다) 그리고 그 뒤의 -n은 name을 의미하고, 그 뒤에 가상환경명(krc)이 온다. 가장 마지막의 python=3.8은 3.8 버전의 python의 conda 가상환경을 생성하겠다는 의미다.
위 코드를 실행하면, 다음과 같은 화면으로 바뀐다.
설치 진행여부를 묻는 질문이다. 여기서 y를 입력하고 Enter키를 눌러서 진행한다. 완료되면, 다음 화면처럼 된다.
conda activate krc
: conda 가상환경에 진입하는 명령어이다. conda 가상환경으로 진입해야할 때마다 항상 위 코드를 입력 및 실행해야한다. 매번 이렇게 번거롭게 conda activate krc 로 가상환경 진입을 한 후에 jupyter notebook을 입력 및 실행해서 쥬피터 노트북을 열어야한다.
: python 관련 라이브러리 혹은 패키지들이 엄청 많은데, 이러한 패키지들은 강한 Hardware Dependency가 있다. 잘 와 닿지 않을 수 있는데, 쉬운 예시로 여러분의 맥이나 윈도우에 가상환경 생성없이 Deep Learning Framework인 Tensorflow를 잘못 설치하면, ... 싹 밀어야하는 대참사가 일어날 수 있다. 그렇기 때문에, 이러한 것을 예방하고자, 게다가 여러 실험환경이 필요한 경우, ... 등 다양한 경우를 위해 가상환경을 생성하고, 진입해서 사용한다.
그런데 krc 가상환경에는 아무런 라이브러리들이 없으니, 필요한 라이브러리들을 설치해야한다.
conda install jupyter numpy pandas scikit-learn matplotlib seaborn bs4 lxml scipy
이번에도 설치 진행여부를 묻는 질문이 나올 것이다. 여기서 y를 입력하고 Enter키를 눌러서 진행한다.
간략한 설명
: 다음 코드를 입력해서, Jupyter notebook을 실행해보자. 여러분의 메인 웹브라우저에서 Jupyter NoteBook이 실행될 것 이다.
jupyter notebook
Step 01: 어떤 디렉토리에서 Jupyter를 실행했느냐에 따라 디렉토리 브라우징이 달라질 것이다. 보통 jupyter notebook을 실행하면 다음과 같은 화면일 것이다.
여기서 Desktop을 클릭해서 들어가면, 여러분의 바탕화면(윈도우10 용어로 비유하자면)으로 진입하게 된다.
Step 02: 우측에 New -> Python 3 선택 (혹은 다른 Python 3.8.13('가상환경명') ) -> 확장자가 .ipynb 인 파일이 생성된다.
바탕화면에 생긴 확장자가 .ipynb 인 Jupyter Notebook 파일
: 여러분과 달리 필자의 스샷애은 DS라고 박힌 뭔가 좀 있어보이는 아이콘이 박혀있는 것을 볼 수 있다. 필자는 JetBrains - DataSpell이라는 (쓰지도 않는) IDE를 다운받아서 그렇다.
Step 04: 실습을 끝내고 싶을 때, miniforge prompt 창에서 Ctrl + Z 혹은 Quit(스샷)를 누르시면 된다.
Step 05: 그리고 다음 명령어로 가상환경을 나오면 된다.
conda deactivate
그러면 우측의 krc가 base로 바뀐 것을 확인할 수 있다.
우리는 매번 실습할 때마다, 이렇게 번거롭게 conda activate krc 로 가상환경 진입을 한 후에 jupyter notebook을 입력 및 실행한 후 쥬피터 노트북을 열어야한다. 우리의 숙명이다. 하지만, 간단하게 하는 방법도 있다. alias로...
conda list
: 자신의 컴 안에 있는 conda 가상환경 리스트를 뽑아주는 명령어이다. 현재 krc 가상환경에 있기 때문에 krc 가상환경 옆에 * 이 있는 것이다.
conda env list
: 가상환경에서 무언가를 잘못 설치해서 꼬이거나 아니면, 마음에 안 들 수 있다. 필요가 없어지면, 바로바로 삭제해주도록 하자. krc 가상환경을 삭제해보겠다.
conda env remove --n krc
conda env list
와... 블로그장님.. 진짜 파트0부터 파트 5까지 따라한 사람입니다.
정말... 1주일동안 고생하던걸 해결해주셨어요 ㅠㅠㅠㅠㅠㅠㅠㅠ정말 감사합니다!!!!!!!!!!!
세팅이 처음인 초보 입장에서는 스크린샷 하나하나가 정말 귀하더군요. 시행착오라던가 성공했을때의 화면도
귀했는데. 꼭꼭 씹어먹으라면서 올려주신것 덕분에 잘 세팅했습니다.