📝트랜스퍼러닝 후 파인튜닝하기
개와 고양이 사진을 분류하는 딥러닝 Transfer Learning 해보기(https://coding-jisu.tistory.com/169)에서
추가적으로 파인튜닝을 해봤다
파인 튜닝? 섬세한 튜닝
이 방법은 꼭 트랜스퍼 러닝을 한 다음에 수행하는 방법이다
위의 트랜스퍼러닝을 한 후에 조금 더 개선이 가능한지 해보는 방법으로서
위에서 학습한 모델을 가지고 그 상태에서 추가로 학습을 시키는 것이다
단, 좋은 모델의 일부분을 내 데이터로 학습 가능하도록 변경한 후에 학습시킨다
일단 베이스 모델의 전체 레이어를 다시 학습 가능토록 바꿔주고 베이스 모델의 전체 레이어 수를 확인한다
레이어 갯수를 확인했으니 몇번째 레이어까지 학습이 안되도록 할 것인지 결정해 준다
# 1. base_model을 먼저 모두 학습 가능하도록 만들어 놓는다
base_model.trainable= True
# 2. base_model의 레이어 수를 확인한다
len(base_model.layers)
# 3. 몇번째 레이어까지 frozen 시킬지 결정
end_layer = 100
# 4. base_model의 첫번째 레이어부터 end_layer 까지는 학습이 되지 않도록 frozen 시킨다
for layer in base_model.layers[ 0 : end_layer+1 ] :
layer.trainable = False
이번엔 새로운 옵티마이저로 컴파일 후 학습 / 평가 해보았는데
from keras.optimizers import Adam
model.compile(Adam(0.0001),'binary_crossentropy',['accuracy'] )
epoch_history2 = model.fit( train_generator, epochs= 5, validation_data= (test_generator) )
model.evaluate(test_generator)
RMSprop의 accuracy: 0.9700, Adam의 accuracy: 0.9630으로 비슷하지만 RMSprop이 조금 더 높았다
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] 가장 좋은 모델과 기록을 자동 저장하기 ModelCheckPoint, CSVLogger (0) | 2023.01.02 |
---|---|
[Deep Learning] 사진 분류하는 딥러닝 Transfer Learning으로 해보기 (MobileNetV2 활용) (0) | 2023.01.02 |
[Deep Learning] 원본 파일을 train / test 파일로 분리하기 (0) | 2023.01.02 |
[Deep Learning] CNN 개와 고양이 사진을 분류하는 딥러닝 해보기 (0) | 2023.01.02 |
[Deep Learning] CNN TensorFlow 이미지 분류하는 딥러닝 해보기 (0) | 2022.12.30 |
댓글