보통 딥러닝을 deep neural network라고 부르거나, fully connected layer라고
부르기도 한다. 혹은 MLP(Multi Layer Perceptron)이라고 부르기도 한다.
MLP는 공부를 좀 해봐서 이번 수업 때도 그리 어렵지는 않았다.
import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms
# 데이터 로딩
train_loader = torch.utils.data.DataLoader(
datasets.MNIST('.', train=True, download=True,
transform=transforms.ToTensor()),
batch_size=64, shuffle=True)
# 모델 정의
class MLP(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(28*28, 128)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = x.view(-1, 28*28) # flatten
x = self.relu(self.fc1(x))
return self.fc2(x)
model = MLP()
optimizer = optim.Adam(model.parameters())
criterion = nn.CrossEntropyLoss()
# 학습
for epoch in range(5):
for images, labels in train_loader:
output = model(images)
loss = criterion(output, labels)
optimizer.zero_grad()
loss.backward()
optimizer.step()