cifar10_FCL_mark4
훈련 정보:
epoch = 50 # 시간관계상 짝수 epoch 마다 accuracy를 측정하도록 설계해서 epoch은 웬만하면 짝수로 설정할것
batch = 256
criterion = nn.functional.cross_entropy
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)
훈련결과:
→ 20 epoch 이후에서 추론능력이 저하된걸 볼 수 있음.
train_loss, validation_loss는 둘 다 꾸준히 내려가는데 validation_accuracy가 쭉 올라갈때 test_accuracy는 어느 순간 꺾임.
오버피팅(과적함)의 정의는
[모델이 학습 데이터에 지나치게 최적화되어, 새로운 데이터에 대한 일반화 능력이 떨어지는 현상]
을 의미하니까 test_accuracy가 더이상 늘지 않는 이유 중 하나일것같음.
cifar10_FCL_mark5
모델: # 히든 레이어에서 >< 오목 적용 및 2의 제곱수로 노드 개수 설정
class FCL_mark5(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = torch.nn.Linear(3 * 32 * 32, 1024)
self.fc2 = torch.nn.Linear(1024, 128)
self.fc3 = torch.nn.Linear(128, 1024)
self.fc4 = torch.nn.Linear(1024, 10)
self.relu = torch.nn.ReLU()
def forward(self, x):
x = torch.flatten(x, 1)
x = self.relu(self.fc1(x))
x = self.relu(self.fc2(x))
x = self.relu(self.fc3(x))
out = self.fc4(x)
return out
훈련 정보:
epoch = 26 # 시간관계상 짝수 epoch 마다 accuracy를 측정하도록 설계해서 epoch은 웬만하면 짝수로 설정할것
batch = 256
criterion = nn.functional.cross_entropy
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)
훈련 결과: