DeepLearning과 MachineLearning에 관심이 생겨 배우기 시작했다. ML개발에 많이 쓰이는 tensorflow를 m1 맥북에 설치했다. 또한 conda를 이용하여 가상환 환경설정을 했다. 해맸던 부분을 기록하여 나중에 다시 찾아보려한다.
ML개발을 할 때에는 python기반의 library와 framework가 많아서 주로 쓰인다. 가상환경은 방과 같은 개념이다. 욕실에는 변기, 욕조 등이 씻을 때 필요한 것들이 있고 서재에는 책상, 책들이 있어 공부할 때 필요한 것들이 있다. 물론 두 공간에는 컵과 같이 같은 것이 필요할 때에도 있다. 이처럼 가상환경 또한 개발을 하면서 필요한 패키지들이 들어있는 방이라고 생각하면 쉽다. 여러 프로젝트를 진행하다보면 다른 version들 다른 library들이 필요할 때가 있다. 그럴 때는 각각의 가상환경을 만들어서 프로젝트를 진행하면된다. 물론 같은 환경이 필요할 때에는 재사용도 가능하다.
homebrew는 package manager로 software의 download와 관리를 도와준다.
homebrew가 깔려있지 않다면 아래의 링크에서 나오는 명령어를 terminal에 입력하여 다운로드 받으면된다.
homebrew download
conda는 package manager로 Tensorflow, pandas, Numpy와 같은 software를 설치하고 관리해주는 역할을 한다. 가상환경도 생성해주고 관리해준다.
아래 download button을 누르면 Miniforge3-MacOSX-arm64.sh파일을 얻을 수 있다.
Download Miniforge3// Miniforge는 macOS arm64 chips를 위한 conda installer이다.
download 이후에 아래의 명령어를 terminal에 입력하면 conda가 설치가 된다.
chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate
명령어 궁금할 때 참고
conda가 설치가 완료되었으면 terminal을 다시 켰을 때 앞에 안보이던 (base)가 보인다.
mkdir tensorflow-test
cd tensorflow-test
conda create --prefix ./env python=3.8
conda activate ./env
conda install -c apple tensorflow-deps
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
python -m pip install tensorflow-datasets
conda install jupyter pandas numpy matplotlib scikit-learn
jupyter notebook
import numpy as np
import pandas as pd
import sklearn
import tensorflow as tf
import matplotlib.pyplot as plt
# Check for TensorFlow GPU access
print(f"TensorFlow has access to the following devices:\n{tf.config.list_physical_devices()}")
# See TensorFlow version
print(f"TensorFlow version: {tf.__version__}")
TensorFlow has access to the following devices:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
TensorFlow version: 2.8.0
이러한 결과가 나오면 setup 완료!!
Code Editor로 VScode를 실행했는데 사용가능한 kernel에서 위에서 생성한 가상환경을 볼 수가 없었고 conda env list 명령어를 통하여서도 찾을 수가 없었다.
왜인지 이유를 찾아가던 중 conda는 anaconda 폴더 내의 env폴더에 포함된 환경만 추적한다는 것을 알게되었다. 위의 실습에서는 prefix명령어를 사용하여 새로운 폴더를 지정해서 환경을 만들어 주었기에 anaconda 폴더내에서 찾을 수가 없었던 것이다.
conda create -n [환경이름] python=[필요한버전]
이 명령어를 사용하여 가상환경을 설치하니 anaconda folder에 들어가 있는 것을 알 수가 있었다. Vscode에 anaconda 폴더 이외에 다른 곳에 저장된 환경을 직접 추가하는 방법도 있다고 한다.
[참고링크]https://github.com/mrdbourke/m1-machine-learning-test#how-to-setup-a-tensorflow-environment-on-m1-m1-pro-m1-max-using-miniforge-shorter-version
[참고영상]https://www.youtube.com/watch?v=_1CaUOHhI6U