본문 바로가기

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..