|
32 | 32 | # |
33 | 33 | # 일반적으로 두 전이 학습 방법 모두 몇 가지 단계를 동일하게 따릅니다. |
34 | 34 | # |
35 | | -# - 사전 훈련된 모델을 초기화합니다. |
| 35 | +# - 사전 학습된 모델을 초기화합니다. |
36 | 36 | # - 최종 계층을 재구성하여 새 데이터 집합의 클래스 수와 동일한 수의 출력을 갖도록 합니다. |
37 | 37 | # - 새 데이터셋의 클래스 수와 동일한 출력 수를 갖도록 최종 계층을 재구성합니다. |
38 | | -# - 훈련 중에 업데이트할 매개변수를 최적화 알고리즘에 맞게 정의합니다. |
| 38 | +# - 학습 중에 업데이트할 매개변수를 최적화 알고리즘에 맞게 정의합니다. |
39 | 39 | # - 학습 단계를 실행합니다. |
40 | 40 | # |
41 | 41 |
|
|
75 | 75 | # [resnet, alexnet, vgg, squeezenet, densenet, inception] |
76 | 76 | # |
77 | 77 | # 다른 입력은 다음과 같습니다. ``num_classes`` 은 데이터셋의 클래스 수, |
78 | | -# ``batch_size`` 는 훈련에 사용되는 배치 크기로 |
| 78 | +# ``batch_size`` 는 학습에 사용되는 배치 크기로 |
79 | 79 | # 모델의 성능에 따라 조정할 수 있으며, |
80 | | -# ``num_epochs`` 는 실행하려는 훈련 에폭 수, |
| 80 | +# ``num_epochs`` 는 실행하려는 학습 에폭 수, |
81 | 81 | # ``feature_extract`` 는 미세 조정 또는 특징 추출 여부를 정의하는 부울(boolean)입니다. |
82 | 82 | # ``feature_extract = False``이면 모델이 미세 조정되고 |
83 | 83 | # 모든 모델의 매개변수가 업데이트됩니다. |
|
94 | 94 | # 데이터 집합의 클래스 수 |
95 | 95 | num_classes = 2 |
96 | 96 |
|
97 | | -# 훈련을 위한 배치 크기 (메모리 용량에 따라 변경됩니다.) |
| 97 | +# 학습을 위한 배치 크기 (메모리 용량에 따라 변경됩니다.) |
98 | 98 | batch_size = 8 |
99 | 99 |
|
100 | | -# 훈련할 에폭 수 |
| 100 | +# 학습할 에폭 수 |
101 | 101 | num_epochs = 15 |
102 | 102 |
|
103 | 103 | # 특징 추출을 위한 플래그(flag)입니다. False일 경우, 전체 모델을 미세 조정하고 |
|
112 | 112 | # 모델을 조정하는 코드를 작성하기 전에 |
113 | 113 | # 몇 가지 도우미 함수(Helper Functions)를 정의해 보겠습니다. |
114 | 114 | # |
115 | | -# 모델 훈련 및 검증 코드 |
| 115 | +# 모델 학습 및 검증 코드 |
116 | 116 | # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
117 | 117 | # |
118 | 118 | # ``train_model`` 함수는 주어진 모델의 학습과 검증을 처리합니다. |
119 | 119 | # 이 함수는 PyTorch 모델, 데이터로더(dataloader) 딕셔너리, 손실 함수, |
120 | | -# 옵티마이저, 훈련 및 검증을 위해 정해진 에폭 수, |
| 120 | +# 옵티마이저, 학습 및 검증을 위해 정해진 에폭 수, |
121 | 121 | # 그리고 Inception 모델일 때를 나타내는 부울 플래그(boolean flag)를 입력으로 받습니다. |
122 | 122 | # 이 아키텍처는 보조(auxiliary) 출력을 사용하고, 전체 모델 손실은 |
123 | 123 | # `여기 <https://discuss.pytorch.org/t/how-to-optimize-inception-model-with-auxiliary-classifiers/7958>`__ 에 설명된 대로 |
|
127 | 127 | # 각 에폭이 끝난 후 전체 검증 단계를 실행합니다. |
128 | 128 | # 또한, 검증 정확도 측면에서 가장 성능이 좋은 모델을 추적하고 |
129 | 129 | # 학습이 끝나면 해당 모델을 반환합니다. |
130 | | -# 각 에폭이 끝나면 훈련 및 검증 정확도를 볼 수 있습니다. |
| 130 | +# 각 에폭이 끝나면 학습 및 검증 정확도를 볼 수 있습니다. |
131 | 131 | # |
132 | 132 |
|
133 | 133 | def train_model(model, dataloaders, criterion, optimizer, num_epochs=25, is_inception=False): |
@@ -161,7 +161,7 @@ def train_model(model, dataloaders, criterion, optimizer, num_epochs=25, is_ince |
161 | 161 | optimizer.zero_grad() |
162 | 162 |
|
163 | 163 | # 순방향 |
164 | | - # 훈련 하는 동안만 기록을 추적합니다. |
| 164 | + # 학습 하는 동안만 기록을 추적합니다. |
165 | 165 | with torch.set_grad_enabled(phase == 'train'): |
166 | 166 | # 모델의 출력을 가져오고 손실을 계산합니다. |
167 | 167 | # 학습 시 보조(auxiliary) 출력이 있는 inception의 특별한 경우입니다. |
|
0 commit comments