본문 바로가기

pytorch

(19)
nn.Sequential 기반의 모델 구현하기 import torch.nn as nnimport torchmodel = nn.Sequential( nn.Linear(4, 16), nn.ReLU(), nn.Linear(16, 32), nn.ReLU())print(model>>>Sequential( (0): Linear(in_features=4, out_features=16, bias=True) (1): ReLU() (2): Linear(in_features=16, out_features=32, bias=True) (3): ReLU())두 개의 밀집 연결 층의 모델 생성nn.init.xavier_uniform_(model[0].weight)l1_weight = 0.01l1_penalty = l1_weight * model[2..
모델 파라미터를 저장하고 업데이트하기 위한 파이토치 텐서 객체 파이토치에서는그레이디언트를 계산해야 하는 특수한 텐서 객체를 사용하여 훈련 중에 모델의 파라미터를 저장하고 업데이트할 수 있다. import torcha = torch.tensor(3.14, requires_grad=True)b = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)print(a)print(b)>>>tensor(3.1400, requires_grad=True)tensor([1., 2., 3.], requires_grad=True)requires_grad 의 기본값은 False 이다.  신경망 모델은 역전파하는 동안 대칭성을 깨기 위해 파라미터를 랜덤한 가중치로 초기화해야 한다.  글로럿 초기화로 텐서 생성# 빈 텐서를 만들고 xavier_normal_..
파이토치 주요 특징 정적 그래프에 비해 유연성이 뛰어난 동적 계산 그래프를 사용한다. 파이토치의 계산 그래프Directed Acyclic Graph, DAG 유향 비순환 그래프를 기반으로 계산을 수행한다.  파이토치로 그래프 만들기import torchdef compute_z(a, b, c): r1 = torch.sub(a, b) r2 = torch.mul(r1, 2) z = torch.add(r2, c) return zprint('스칼라 입력:', compute_z(torch.tensor(1), torch.tensor(2), torch.tensor(3)))print('랭크 1 입력:', compute_z(torch.tensor([1]), torch.tensor([2]), torch.tensor([3]..
붓꽃 데이터셋을 분류하는 다층 퍼셉트론 만들기 import numpy as npimport torchfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitiris = load_iris()X = iris['data']y = iris['target']X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1./3, random_state=1)from torch.utils.data import TensorDatasetfrom torch.utils.data import DataLoaderX_train_norm = (X_train - np.mean(X_train)) / np.std(X..
파이토치로 신경망 모델 만들기 파이토치 신경망 모듈 torch.nnimport numpy as npimport matplotlib.pyplot as pltimport torch.nn as nnimport torchfrom torch.utils.data import TensorDatasetfrom torch.utils.data import DataLoaderX_train = np.arange(10, dtype='float32').reshape((10,1))y_train = np.array([1.0, 1.3, 3.1, 2.0, 5.0, 6.3, 6.6, 7.4, 8.0, 9.0], dtype='float32')plt.plot(X_train, y_train, 'o', markersize = 10)plt.xlabel('x')plt.ylabe..
로컬 파일에서 데이터셋 만들기 import pathlib# 절대 경로로 변경imgdir_path = pathlib.Path('C:/Users/owner/Desktop/pytorch/data_pytorch/cat_dog_images')if not imgdir_path.exists(): print("Directory does not exist")else: file_list = sorted([str(path) for path in imgdir_path.glob('*.jpg')]) if file_list: print(file_list) else: print("No .jpg files found")>>>['C:\\Users\\owner\\Desktop\\pytorch\\data_pytorc..
셔플, 배치, 반복 확률적 경사 하강법 최적화 방식으로 신경망 모델을 훈련하려면 훈련 데이터를 무작위로 섞은 배치로 만들어 주입하는 것이 중요하다. 데이터 로더 객체의 batch_size 매개변수를 사용하여 배치 크기를 지정하는 방법을 보았음, 배치를 만드는 것 외에도 데이터셋을 섞거나 재순환하는 방법에 대해 알아본다. 먼저 joint_dataset 을 사용하여 셔플링된 데이터 로더를 만든다.import torchfrom torch.utils.data import DataLoaderfrom torch.utils.data import Datasettorch.manual_seed(1)t_x = torch.rand([4, 3], dtype=torch.float32)t_y = torch.arange(4)class JointData..
파이토치 입력 파이프라인 구축 파이토치의  전처리 파이프라인 구축 클래스, Dataset 과  DataLoader 의 구축텐서에서 파이토치 DataLoader 만들기import torchfrom torch.utils.data import DataLoadert = torch.arange(6, dtype=torch.float32)data_loader = DataLoader(t)for item in data_loader: print(item) >>>tensor([0.])tensor([1.])tensor([2.])tensor([3.])tensor([4.])tensor([5.])데이터셋의 개별 원소 순환 배치 크기 3의 배치를 만들려면 batch_size 매개변수를 사용한다.data_loader = DataLoader(t, batc..