1.5 파인튜닝 코드 뜯어보기
2024. 3. 24. 21:24

이코드에서 도대체 features와 classifier 가 뭔지 몰라서 코드를 돌려봤다,

vgg-16 의 결과 feataure / classifier 가 분리되어있는것을 발견하였다.
학습시킬 파라매터를각 리스트에 저장함
- params_to_update_1 ; [feature 전체 ]
- .. _2: [ classifier0 .weight, +bias , classifier3.weight +bias ]



opimizer 를 갱신한다. 이때 parmams 을 배열로 넣는다.
## dataset return 값으로 통일

마지막에 return sample 형태만 기억하기
model.eval()은 훈련 및 추론(평가) 시에 다르게 작동하는 모델의 특정 레이어 또는 부분을 전환하는 스위치의 일종입니다. 예를 들어, 드롭아웃 레이어, 배치 정규화 레이어 등이 있습니다. 모델을 평가할 때 이러한 레이어들을 비활성화해야 하며, .eval()을 사용하면 됩니다. 또한, 평가 및 검증에 일반적으로 사용되는 관행은 torch.no_grad()와 함께 model.eval()을 사용하여 그라디언트 계산을 비활성화하는 것입니다.

배열을 넣으면서 requires_grad = true 으로 변경해줌

여기서 phase=='train'
은 param.requries_grad=false 애들은 not backpropagation /



