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  /