336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
[torch.nn & torch.nn.Module]
PyTorch에서는 nn 패키지가 동일한 목적으로 제공됩니다. nn 패키지는 신경망 계층(layer)들과 거의 동일한 Module 의 집합을 정의합니다. Module은 입력 Tensor를 받고 출력 Tensor를 계산하는 한편, 학습 가능한 매개변수를 갖는 Tensor 같은 내부 상태(internal state)를 갖습니다. nn 패키지는 또한 신경망을 학습시킬 때 주로 사용하는 유용한 손실 함수들도 정의하고 있습니다.
때때로 기존 모듈의 구성(sequence)보다 더 복잡한 모델을 구성해야 할 때가 있습니다; 이럴 때는 nn.Module 의 서브클래스로 새 모듈을 정의하고, 입력 Tensor를 받아 다른 모듈 또는 Tensor의 autograd 연산을 사용하여 출력 Tensor를 만드는 forward 를 정의합니다.
[torch.optim]
PyTorch의 optim 패키지는 최적화 알고리즘에 대한 아이디어를 추상화하고 일반적으로 사용하는 최적화 알고리즘의 구현체(implementation)를 제공합니다.
import torch
class LinearRegressionModel(torch.nn.Module):
def __init__(self):
super().__init__()
self.linear = torch.nn.Linear(3,1)
def forward(self, x):
return self.linear(x)
x_train = torch.FloatTensor([[73, 80, 75], [93, 88, 93], [89,91,80], [96,98,100],[73,66,70]])
y_train = torch.FloatTensor([[152], [185], [180], [196], [142]])
model = LinearRegressionModel()
optimizer = torch.optim.SGD(model.parameters(), lr=1e-5)
epochs = 20
for epoch in range(epochs + 1):
prediction = model(x_train)
cost = torch.nn.functional.mse_loss(prediction, y_train)
optimizer.zero_grad()
cost.backward()
optimizer.step()
print('Epoch : {:4d}/{} hypothesis : {} Cost : {:.6f}'
.format(epoch, epochs, prediction.squeeze().detach(), cost.item()))
출처 : https://tutorials.pytorch.kr/beginner/pytorch_with_examples.html#tensorflow-static-graph
출처 : https://youtu.be/1JT8KhvymmY
'AI > PyTorch' 카테고리의 다른 글
[PyTorch] MNIST with Dropout (0) | 2019.10.28 |
---|---|
[PyTorch] MNIST with ReLU and Weight Initialization (0) | 2019.10.28 |
[PyTorch] MNIST Introduction (0) | 2019.10.28 |
[PyTorch] Logistic Regression & Softmax (0) | 2019.10.27 |
[PyTorch] Minibatch Gradient Descent (0) | 2019.10.27 |