본문 바로가기
Development/Python

딥러닝 준비 python 개발환경 + Pytorch 설치 in Windows 10

by qWooWp 2020. 12. 13.
반응형

이런 저런 환경 설정을 하다 이제 딥러닝 해볼까 하는 생각에 

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

댓글