M1 세팅 Part5 - 1. Tensorflow '지저분하게 설치하기'

그는사악해·2021년 7월 31일
1

M1_Settings

목록 보기
7/18
post-thumbnail

썸네일 이미지 출처: https://devclass.com/2020/12/15/tensorflow-2_4-machine-learning-framework/

이전 단계 진행했니?

M1 세팅 Part0. Download First, M1 세팅 Part1. iTerm2 & Brew 깔끔한 버전(혹은 M1 세팅. iTerm2 & Brew 지저분한 버전으로 설치), M1 세팅 Part2. 기본적인 ZSH 세팅과 brew install, M1 세팅 Part3. Miniforge3 설치, conda 가상환경 까지 진행한 것을 전제로 한다.

들어가기 전에

M1 에 Tensorflow 를 '지저분하게 설치하는 방법'을 알려주려고 한다. '지저분하게 설치'라고 한 이유는 '번거롭다'는 의미를 효과적으로 전달하기 위해서였다. 이전 포스팅에서도 말했으나 다시 한 번 말을 하자면, 일반 다른 CPU, GPU와는 다르게 (CPU 코어 N개 + GPU 코어 N개 + RAM 인) M1의 특성때문에 일반적인 방법으로 ANACONDA와 Tensorflow (or Tensorflow-gpu)를 설치하면, 작동이 안 되거나 오류가 난다.

그래서 Apple에서 자체적으로 Tensorflow를 제작하기 시작했고, 일반적으로 우리가 라이브러리를 설치할 때 쓰는 명령어인 pip install tensorflow 로 설치도 할 수 없고, Apple 에서는 공식적으로 Tensorflow를 ANACONDA 환경에서 돌리지 말라고 했다.

Apple 이 공식적으로 miniforge3를 지원하고 권장하고 있다. 그래서 필자도 이전 포스팅에서 miniforge3 설치하는 과정을 다루었다. 이번에는 본격적으로 Tensorflow를 설치하는 방법을 다루어보려고 한다.

잘 따라오기를

01. python 3.8 가상환경 생성

Miniforge가 설치되어있다면, 이제 python 3.8 가상환경을 생성해보자.iTerm2를 실행하여서 보자.
(Apple에서 공식적으로 python 3.8 환경을 권장하고 있다.)

conda create -n yoda python=3.8

가상환경명은 여러분이 원하는 것으로 명명해도 상관없다. 필자의 경우, "yoda" 라는 python 3.8의 가상환경을 생성했다. 맞다. '스타워즈'의 그 '요다'다.

y를 누르고 계속 가상환경을 생성했다면, conda activate 로 가상환경을 실행하자.

conda activate yoda

02. 기본적인 라이브러리 설치

: 생성한 가상환경에 기본적인 라이브러리들을 설치한다.

conda install numpy pandas scikit-learn statsmodels scipy seaborn matplotlib requests lxml beautifulsoup4 graphviz jupyter

필자의 스샷을 보여주겠다.

이미 알겠지만

  • numpy, pandas, scikit-learn, statsmodels, scipy, seaborn, matplotlib
    : 해당 라이브러리들은 기본적인 데이터분석 및 머신러닝에 필요한 패키지들이다.
  • jupyter : jupyter notebook (후에 수정하며 추가했다. 그래서 스크린샷에는 jupyter가 안 보일 것이다.)
  • requests, beautifulsoup4, lxml
    : 파이썬으로 웹크롤링시 필요한 라이브러리들이다.
  • graphviz : DECISIONTREE 등 모델 시각화하는 툴이다.

03. Apple Tensorflow Github

: iTerm2 를 실행한 체(+ 가상환경도 활성화된 상태)로 살짝 냅두고, 브라우저로 다음 아래 url을 클릭해서 이동해보자.

Apple Tensorflow(v0.1alpha3) Github

클릭하면 아래 스샷처럼 보일 것이다.

쿨하게 아래로 스크롤을 내려보자.

이 화면이 나올 때까지 스크롤을 내려보자.

그리고 tensorflow_macos-0.1alpha3.tar.gz 이 녀석을 다운받자.

이제 tensorflow_macos-0.1alpha3.tar.gz 이 녀석은 다운로드가 되어서 Downloads 폴더(=다운로드 폴더) 내에 있을 것이다.

04. '지저분한 설치' 의 시작

: 이제 잠시 방치해두었던 iTerm2으로 다시 가자. 가상환경이 활성화된 상태일텐데, 그대로 냅두자.

1) Downloads(다운로드 폴더)로 이동

cd ~/Downloads

2) ls

: ls를 입력해서 (tensorflow_macos-0.1alpha3.tar.gz 요 녀석이 어차피 Downloads 폴더에 있는지는 잘 알지만 그래도 하면 좀 있어보이니까) Downloads 폴더 내에 뭐가 있는지 살펴보자.

ls

3) tar.gz 압축풀기

: tar xvf 명령어로 압축을 풀 것이다. 'tar xvf tensor' 까지만 입력하고 Tab 키를 누르면 파일명이 자동완성된다.

tar xvf tensorflow_macos-0.1alpha3.tar.gz

여기까지 잘 따라왔는가?

4) 압축을 푼 후 내부 폴더로 이동

: 현재 우리는 가상환경이 실행된 상태로 Downloads 폴더에 있다.

  • Step 01: 위 3) 에서 압축을 잘 풀었다면, 압축 푼 직후인 지금, ls 명령어를 입력해보면,
    ls
  • Step 02: tensorflow_macos 폴더가 생성되어 있을 것이다. 그 폴더 내부로 들어간다.
    cd tensorflow_macos
  • Step 03: 그 다음 tensorflow_macos 내부에 뭐가 있는지 ls 명령어로 살펴보자.
    ls
  • Step 04: arm64 폴더와 sh 파일이 있을 것이다. sh 파일은 건드리지 않고 다시 arm64 폴더로 이동한다.
    cd arm64
    여기까지 잘 따라왔는가?
    이 내부에 뭐가 있는 지 구경하고 싶다면, 다시 한 번 ls를 입력해도 된다.
    필자의 스크린샷을 첨부할테니 확인해보기를 바란다.
    잘 따라왔다면, 필자의 화면과 같은 과정일 것이다.

05. 지금부터 주의

: 여기서부터는 arm64 폴더 내부에는 (Apple이 만든) tensorflow 에 필요한 라이브러리들이 whl 파일 형태로 존재한다. 우리는 이 arm64 폴더 내의 whl 파일들을 먼저 설치하고, 그 밖에 잡동사니들을 설치하고, tensorflow를 설치할 것이다.

다음 스크린샷은 방금 말한 whl 파일들이다.

지금부터 순서대로 잘 따라오라

: 현재 우리는 iTerm2로 진행 중이고, arm64 폴더 내부에 있고, 가상환경이 활성화된 상태이다.

1) arm64 폴더 내부의 whl 파일들 설치

: tensorflow에 필요한 (Apple이 제작한) 기본적인 라이브러리들을 먼저 설치한다. 다음 명령어를 그대로 복사해서 붙여넣고 실행하자.

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

그대로 복붙하자

  • 참고: pip install --upgrade --no-dependencies --force numpy 입력하고 Tab 키 누르고, grpci 누르고 Tab 키 누르고, 이런 식으로 해도 되는데... 그러기엔 길지 않을가? 그냥 복사해서 붙여넣자. 해당 명령어를 보면 알겠지만, arm64 폴더 내부의 whl 파일들로 설치하는 과정이다.
    다음과 같은 메세지와 화면이 나왔다면 성공이다.

2) (필자도 정체를 모르는) 무언가들 설치

: 다음 명령어는 정확하게 뭔지 모른다. 그렇지만, 구글링 결과 필요하다고 한다.
그냥 일단 하자.

pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard

정상적으로 설치가 되었을 것이다.

3) 이제 기다렸던 Tensorflow 설치!

: arm64 폴더 내부에 있는 Tensorflow 본체 whl 파일을 설치한다. 이게 '지저분한 설치'의 마지막 과정이다.

pip install --upgrade --force --no-dependencies tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl

이 과정은 설치과정이 짧고 심플하다. (뭔가 허망할 수도 있다.)

06. 확인은 해봐야지?

: 다 설치했으면, 끝내지 않고 바로 쿨하게 jupyter notebook 명령어로 jupyter notebook을 실행한다.

jupyter notebook

아마 실행이 안 될 것이다. 왜냐하면 우리가 새로 생성한 환경에 jupyter notebook을 설치하지 않았기 때문이다. (필자가 까먹음...)

conda install jupyter

위 명령어로 jupyter notebook을 설치하자
그리고 다시 jupyter notebook을 실행해보자.

이제 각자 원하는 경로에 새로운 ipynb 파일을 생성하고 jupyter cell에 다음과 같이 코드를 입력해보자. 필자는 필자가 생성해둔 폴더에 tensorflow_tests 라는 ipynb 파일을 생성하여서 테스트하고 아래에 스크린샷을 공유한다.

import tensorflow as tf
from tensorflow import keras
tf.__version__, keras.__version__

tensorflow 를 import 해서 tensorflow 버전과, keras 버전을 출력하는 명령어이다. 다음과 같이 나오면, 정상적으로 실행이 되는 것이다.

07. 이제 다 끝났다.

  • 추가 1) 원래 kera가 단독 패키지로 있었는데, keras 개발자가 Google에 입사하면서 tensorflow에 흡수되었다고 한다. 그래서 위 명령어처럼 from tensorflow import keras 가 가능한 것이라고 한다.
  • 추가 2) 후속글은 알다시피 '깔끔하게 설치'하는 과정.
profile
데이터를 베어라

0개의 댓글