
121
3
장
고급 컴퓨터 비전: 이미지에서 특징 감지하기
num_ftrs = pre_trained_model.fc.in_features
pre_trained_model.fc = nn.Sequential(
nn.Linear(num_ftrs, 1024), # 새로운 선형 층
nn.ReLU(), # 활성화 함수
nn.Linear(1024, 3) # 세 개의 클래스를 위한 마지막 층
)
드롭 아웃을 추가하면 다음과 같습니다.
num_ftrs = model.fc.in_features
model.fc = nn.Sequential(
nn.Dropout(0.5), # 마지막 선형 층 이전에 드롭아웃을 추가합니다.
nn.Linear(num_ftrs, 1024),
nn.ReLU(),
nn.Dropout(0.5), # ReLU 활성화 함수 다음에 새로운 드롭아웃을 추가합니다.
nn.Linear(1024, 3) # 세 개의 클래스를 위한 마지막 층
)
전이 학습을 위해 이 장에서 사용했던 예제는 드롭아웃을 사용하지 않아도 이미 잘 학습되어
있습니다. 하지만 모델을 만들 때 항상 드롭아웃을 고려하기를 권장합니다. 모델 학습이 잘 될
뿐만 아니라 빠르게 훈련되기 때문에 머신러닝 과정에서 낭비를 크게 줄일 수 있습니다.
신경망을 만들 때 훈련 세트에서 좋은 결과가 ...