본문 바로가기
728x90
반응형
SMALL

Python Library/PyTorch15

[PyTorch] AssertionError: Torch not compiled with CUDA enabled 소제목 입력 torch와 cuda 버전이 맞지 않아 출력되는 에러이다. 따라서, 공식 홈페이지에서 가이드대로 설치를 진행한다. 현재 Windows의 PyTorch는 Python 3.8 ~ 3.11만 지원하고 Python 2.x는 지원되지 않으므로 torch 가상 환경으로 파이썬 버전을 설치한다. conda create --name torch python=3.9 torch 가상 환경을 활성화하고 CUDA 11.8 또는 12.1을 설치한다. pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 그 다음, GPU를 사용하는 확인하기 위해 device를 출력해 본다. import torch devic.. 2024. 3. 19.
[PyTorch] CNN 라이브러리 import torch import torchvision.datasets as dsets import torchvision.transforms as transforms import torch.nn.init device = 'cuda' if torch.cuda.is_available() else 'cpu' 데이터셋 # 랜덤 시드 고정 torch.manual_seed(0) # GPU 사용 가능일 경우 랜덤 시드 고정 if device == 'cuda': torch.cuda.manual_seed_all(0) # 데이터셋 가져오기 mnist_train = dsets.MNIST(root='MNIST_data/', train=True, transform=transforms.ToTensor(), downl.. 2022. 11. 21.
[PyTorch] CUDA (Compute Unified Device Architecture) CUDA (Compute Unified Device Architecture) CUDA ("Compute Unified Device Architecture", 쿠다)는 그래픽 처리 장치 (GPU)에서 수행하는 (병렬 처리) 알고리즘을 C 프로그래밍 언어를 비롯한 산업 표준 언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술이다. import torch torch.cuda.is_available() list0 = [1,2,3,4] x = torch.tensor(list0) x.is_cuda x = x.to('cuda') x.is_cuda import torch from torch import nn from torch.utils.data import DataLoader from torchvision imp.. 2022. 11. 21.
[PyTorch] 모델 파라미터 최적화 모델 파라미터 최적화 import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets from torchvision.transforms import ToTensor import matplotlib.pyplot as plt import matplotlib.cm as cm import numpy as np import os # 트레이닝 데이터셋 다운 training_data = datasets.FashionMNIST( root="data", train=True, download=True, transform=ToTensor() ) # 테스트 데이터셋 다운 test_data = data.. 2022. 11. 21.
[PyTorch] 패션 MNIST 패션 MNIST import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets from torchvision.transforms import ToTensor import matplotlib.pyplot as plt import matplotlib.cm as cm import numpy as np import os # 트레이닝 데이터셋 다운로드 training_data = datasets.FashionMNIST( root="data", train=True, download=True, transform=ToTensor() ) # 테스트 데이터셋 다운로드 test_data = dat.. 2022. 11. 17.
[PyTorch] 자동 미분 (Automatic differentiation) 자동 미분 (Autimatic differentiation) 신경망을 학습할 때 가장 자주 사용되는 알고리즘은 역전파이다. 이 알고리즘에서, 매개변수 (모델 가중치)는 주어진 매개변수에 대한 손실 함수의 변화도(gradient)에 따라 조정된다. 이러한 변화도를 계산하기 위해 PyTorch에는 torch.autograd라고 불리는 자동 미분 엔진이 내장되어 있다. 이는 모든 계산 그래프에 대한 변화도의 자동 계산을 지원한다. import torch # 입력 x, 매개변수 w와 b , 그리고 일부 손실 함수가 있는 가장 간단한 단일 계층 신경망을 가정 x = torch.ones(5) # input tensor y = torch.zeros(3) # expected output w = torch.randn(5.. 2022. 1. 13.
[PyTorch] 모델 매개변수 (Parameter) 모델 매개변수 (Parameter) 신경망 내부의 많은 계층들은 매개변수화 (parameterize)된다. 즉, 학습 중에 최적화되는 weight와 bias과 연관지어진다. nn.Module 을 상속하면 모델 객체 내부의 모든 필드들이 자동으로 추적 (track)되며, 모델의 parameters() 및 named_parameters() method로 모든 parameter에 접근할 수 있게 된다. 각 매개변수들을 순회하며 (iterate), 매개변수의 크기와 값을 출력한다. print("Model structure: ", model, "\n\n") for name, param in model.named_parameters(): print(f"Layer: {name} | Size: {param.size().. 2022. 1. 13.
[PyTorch] 모델 계층 (Layer) 모델 계층 (Layer) input_image = torch.rand(3,28,28) print(input_image.size()) # layer 확인 Out: torch.Size([3, 28, 28]) nn.Flatten nn.Flatten는 layer를 초기화하여 각 28x28의 2D image를 784 pixel 값을 갖는 연속된 array로 변환한다. (dim=0의 미니배치 차원은 유지) flatten = nn.Flatten() flat_image = flatten(input_image) print(flat_image.size()) Out: torch.Size([3, 784]) nn.Linear nn.Linear은 저장된 가중치 (weight)와 편향 (bias)을 사용하여 입력에 선형 변환 (l.. 2022. 1. 13.
[PyTorch] 신경망 모델 구성 신경망 모델 신경망은 데이터에 대한 연산을 수행하는 계층 (layer) / 모듈(module)로 구성되어 있다. torch.nn 네임스페이스는 신경망을 구성하는데 필요한 모든 구성 요소를 제공한다. PyTorch의 모든 module은 nn.Module 의 하위 클래스 (subclass)이다. 신경망은 다른 module (계층)로 구성된 module이다. 이 중첩된 구조는 복잡한 아키텍처를 쉽게 구축하고 관리할 수 있다. # FashionMNIST 데이터셋의 이미지들을 분류하는 신경망 import os import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets, transfo.. 2022. 1. 13.
[PyTorch] 변형 (Transform) 변형 (Transform) 데이터가 항상 ML 알고리즘 학습에 필요한 최종 처리가 된 형태로 제공되지 않는다. 따라서, 변형 (transform)을 통해 데이터를 조작하고 학습에 적합하게 만든다. 모든 TorchVision 데이터셋들은 변형 logic을 갖는, 호출 가능한 객체 (callable)를 받는 매개변수 두 개 특징 (feature)을 변경하기 위한 transform 과 정답 (label)을 변경하기 위한 target_transform을 갖는다. torchvision.transforms 모듈은 주로 사용하는 몇 가지 transform을 제공한다. FashionMNIST의 feature은 PIL Image 형식이며, 정답 (label)은 정수 (integer)이다. 학습을 하려면 정규화 (norm.. 2022. 1. 13.
728x90
반응형
LIST