반응형
Neural Network 기본틀 저장
import torch
import torch.nn.functional as F
# 모델선언
class NeuralNet(torch.nn.Module):
def __init__(self, input_size, hidden_size):
super(NeuralNet, self).__init__()
self.input_size = input_size
self.hidden_size = hidden_size
self.linear_1 = torch.nn.Linear(self.input_size, self.hidden_size)
self.linear_2 = torch.nn.Linear(self.hidden_size, 1)
def forward(self, input_tensor):
linear1 = F.relu(self.linear_1(input_tensor))
output = F.sigmoid(self.linear_2(linear1))
return output
# hypermarameter 선언
model = NeuralNet(2,5)
learning_rate = 0.03
criterion = torch.nn.BCELoss()
optimizer = torch.optim.SGD(model.parameters(), lr = learning_rate)
# 샘플 데이터
x_test = torch.FloatTensor([1, 1])
y_test = torch.FloatTensor([-1])
# 출력
print(f"Model Output : {model(x_test)}")
print(f"Calc Loss Value : {criterion(model(x_test), y_test)}")
"""
출력
Model Output : tensor([0.5407], grad_fn=<SigmoidBackward>)
Calc Loss Value : 0.9411621689796448
"""
DNN 모델 저장
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(784, 256)
self.fc2 = nn.Linear(256, 128)
self.fc3 = nn.Linear(128, 10)
def forward(self, x):
x = x.view(-1, 784)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
model = Net().to(device)
optimizer = optim.Adagrad(model.parameters(), lr = 0.01)
반응형
'Data > Data Science' 카테고리의 다른 글
[Gradient Descent] 경사하강법 (0) | 2021.01.13 |
---|---|
[Pytorch] Autoencoder Base code (0) | 2020.11.29 |
Normalization, Regularization, Standardization (0) | 2020.11.14 |
[Kaggle] Kaggle에 pyspark 설치하기 (0) | 2020.11.04 |
[deeplearning.ai] Sequence Models (0) | 2020.10.30 |