Anaconda3 설치
쿠다 파일 c드라이브 파일 nvdia gpu computing toolkit cuda c11.3으로 파일 복사
아나콘다
아나콘다 환경 셋팅
아나콘타 어플리케이션 바꾸려면 환경 설정을 통해 바꾼다
기본 (base)로 설정되어있는걸 개인 설정에 맞게 바꿔 작업한다.
md project_dl
cd project_dl
conda create -n tfgpu_py37 python=3.7
active tfgpu_py37
conda create -n tfgpu_py37 python=3.7
conda install -c nvidia cudnn
conda install -n tfgpu_py37 ipython notebook jupyter
conda install -n tfgpu_py37 numpy scipy matplotlib spyder pandas seaborn scikit-learn h5py pillow matplotlib tqdm
### conda -n '환경 이름' 설치하고자하는 프로그램 이름 입력하면 설치됌
## 텐서플로우 설치
(gpu)설치
conda install -n tfgpu_py37 tensorflow-gpu
python -m ipykernel install --user --name tfgpu_py37
import tensorflow as tf
from tensorflow import keras
tf.__version__, keras.__version__
버전 정보 확인
쥬피터 노트북 등을 통해 설치가 잘 되었는지 확인
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
아나콘다 설치 전 확인
1. 최신 그래픽 드라이버 설치(NVIDIA GeForce)
2. CUDA toolkit 11 설치
3. cudnn 8 설치
# GPU 개발 환경 구축
## 가상 개발 환경 만들기 및 접속
1. 아나콘다 프롬프트에 접속한 후(시작버튼 > Anaconda > Anaconda Prompt), 아래와 같이 test용 폴더를 만든다.(선택)
> (base) C:\Apps\test\tfgpu_py37>
1. 필요 시 아나콘다의 버전을 최신화 (선택)(현 버전이 마음에 들면 건너뛰어도 무방)
> (base) conda update -n base -c defaults conda
1. 새로운 가상환경을 생성
> conda create -n tfgpu_py37 python=3.7
1. 가상환경으로 접속
> activate tfgpu_py37
## 텐서플로 및 기타 라이브러리 설치
1. 쥬피터 노트북과 관련된 라이브러리를 제일 먼저 설치
> conda install -n tfgpu_py37 ipython notebook jupyter
1. 머신러닝 및 딥러닝에 자주 활용되는 패키지를 설치
> conda install -n tfgpu_py37 numpy scipy matplotlib spyder pandas seaborn scikit-learn h5py pillow matplotlib tqdm
1. tensorflow를 설치
> conda install -n tfgpu_py37 tensorflow-gpu
1. 별도로 필요한 라이브러리를 설치(선택)
> conda install -n tfgpu_py37 -c anaconda py-xgboost <br>
> conda install -n tfgpu_py37 -c conda-forge catboost lightgbm pydotplus pydot
1. 구축한 가상환경을 ipython kernel로 등록
> python -m ipykernel install --user --name tfgpu_py37
## 설치 환경 테스트
- > jupyter notebook
# GPU 정보를 확인
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
import tensorflow as tf
from tensorflow import keras
tf.__version__, keras.__version__
# 패션 MNIST 로드
fashion_mnist = keras.datasets.fashion_mnist
(X_train_full, y_train_full), (X_test, y_test) = fashion_mnist.load_data()
# 각 이미지는 28 * 28 크기의 배열
X_train_full.shape, y_train_full.shape
# 검증세트 분리
# 신경망 훈련을 위한 스케일 조정
# (픽셀 강도를 255 로 나누어 0~1 사이 범위로 조정)
X_valid, X_train = X_train_full[:5000] / 255.0 , X_train_full[5000:] / 255.0
y_valid, y_train = y_train_full[:5000], y_train_full[5000:]
X_test = X_test / 255.0
# 층의 리스트를 가지고 Sequential 모델 생성
model = keras.models.Sequential([
keras.layers.Flatten(input_shape=[28, 28]),
keras.layers.Dense(300, activation='relu'),
keras.layers.Dense(100, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
# 모델 컴파일
# 손실 함수, 옵티마이저, 훈련과 평가 시에 계산할 지표를 지정
# 옵티마이저 학습률 튜닝 시에 keras.optimizers.SGD(learning_rate=0.1)
model.compile(loss="sparse_categorical_crossentropy",
optimizer="sgd",
metrics=["accuracy"])
# 모델 훈련과 평가
# 검증세트 전달 대신 검증에 사용할 훈련 세트의 비율을 지정할 경우
# 10% 는 validation_split=0.1
history = model.fit(X_train, y_train, epochs=30, validation_data=(X_valid, y_valid))
# 학습 곡선 시각화
# 에포크마다 측정한 평균적인 훈련 손실과 정확도 및
# 에포크의 종료 시점마다 측정한 평균적인 검증 손실과 정확도
import pandas as pd
import matplotlib.pyplot as plt
pd.DataFrame(history.history).plot(figsize=(8,5))
plt.grid(True)
plt.gca().set_ylim(0, 1) # 수직축의 범위를 0~1 설정
plt.show()