이런 저런 환경 설정을 하다 이제 딥러닝 해볼까 하는 생각에
pytorch 가 괸찮을거 같다는 판단에 환경설정을 찾아보니 다 천차 만별...
현재 visual studio 내부 python 패키지와 python 3.8 이 설치 되어 있는 상태에에서 어찌하면 좋을까 이리저리
해보다 보니 아래 플로우되로 하여 빌드 성공까지 하였습니다.
크게 절차는 아래와 같습니다.
1. Nvidia CUDA 설치
2. Anaconda 설치
2-1. 가상 환경 추가 및 torch 설치
3. IDE pyCharm 설치
4. 샘플 빌드해서 결과 보기
1. Nvidia CUDA 윈도우 설치
https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
- 이전에 Visual Studio 가 설치 되어 있어야 합니다.
내가 가지고 있는 GPU 가 지원되는지 확인하고 싶으면
NVIDIA Control Panel 에 들어가서 시스템 정보를 확인하면 "CUDA 코어" 라는 부분이 있으면 되는 거 같다.
다운로드 파일 URL : https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
원하는 환경을 선택해 주고, 다운받은 파일은 설치 해주면 됩니다.
2. Anaconda를 설치
https://www.anaconda.com/products/individual
Get Started 로 이동 하여 제일 아래 있는 installer 를 선택합니다
설치 옵션은 스크린 샷을 참조하세요
Advanced Options 에서 Add Anaconda to my PATH environment variable 를 체크해준다.
Anaconda Prompt 를 관리자 권한으로 실행한 다음 아래와 같이 입력해서 CUDA library 가 정상 동작하는지 확인합니다.
Nvcc --version
2-1. 가상 환경 추가 및 torch 설치
아래와 같이 가상 환경 설정을 해줍니다. (정말 디테일한 설명 없이 동작하기 위한 절차만 적는데요.. 양이....)
conda create -n [가상환경이름] python=3.8
Deactivate
Activate [가상환경이름]
pytorch 를 설치 하기 위해 아래와 같이 입력합니다.
conda install pytorch torchvision cudatoolkit=11.0 -c pytorch
3. IDE pyCharm 설치
다운로드 위치 : www.jetbrains.com/
File >> Settings >. Project.interpreter
에서 생성한 conda 환경을 선택해 주면 됩니다.
4. 샘플 빌드해서 결과 보기
여기서 torch 패키지가 보이지 않기 때문에 아래왁와 같이 추가를 시켜주어야 합니다.
왼쪽 아래 + 아이콘을 눌러서 패키지 검색 후 install Package 를 해주면 됩니다.
검색해서 나온 torch 샘플 아무거나 복사해서 Run 해봅니다.
import torch
dtype = torch.float
device = torch.device("cpu")
# device = torch.device("cuda:0") # GPU에서 실행하려면 이 주석을 제거하세요.
# N은 배치 크기이며, D_in은 입력의 차원입니다;
# H는 은닉층의 차원이며, D_out은 출력 차원입니다.
N, D_in, H, D_out = 64, 1000, 100, 10
# 무작위의 입력과 출력 데이터를 생성합니다.
x = torch.randn(N, D_in, device=device, dtype=dtype)
y = torch.randn(N, D_out, device=device, dtype=dtype)
# 무작위로 가중치를 초기화합니다.
w1 = torch.randn(D_in, H, device=device, dtype=dtype)
w2 = torch.randn(H, D_out, device=device, dtype=dtype)
learning_rate = 1e-6
for t in range(500):
# 순전파 단계: 예측값 y를 계산합니다.
h = x.mm(w1)
h_relu = h.clamp(min=0)
y_pred = h_relu.mm(w2)
# 손실(loss)을 계산하고 출력합니다.
loss = (y_pred - y).pow(2).sum().item()
if t % 100 == 99:
print(t, loss)
# 손실에 따른 w1, w2의 변화도를 계산하고 역전파합니다.
grad_y_pred = 2.0 * (y_pred - y)
grad_w2 = h_relu.t().mm(grad_y_pred)
grad_h_relu = grad_y_pred.mm(w2.t())
grad_h = grad_h_relu.clone()
grad_h[h < 0] = 0
grad_w1 = x.t().mm(grad_h)
# 경사하강법(gradient descent)를 사용하여 가중치를 갱신합니다.
w1 -= learning_rate * grad_w1
w2 -= learning_rate * grad_w2
아래와 같이 나오면 설정 완료~~ 힘들었네요...
'Development > Python' 카테고리의 다른 글
크롤링을 위한 준비 및 연습 (0) | 2021.03.21 |
---|---|
크롤링을 위한 준비 및 연습 (0) | 2021.03.17 |
py 파일을 exe 실행파일로 만들기 (0) | 2020.11.02 |
Python Eclipse 개발환경 설치 (0) | 2020.10.20 |
PIP 설치 (0) | 2020.10.20 |
댓글