Fine Tuning(파인 튜닝) 을 하기 위한 코드와 설명
파인튜닝(Fine Tuning)이란?
Transfer Learning을 이용해 학습한
상태에서 베이스 모델의 파라미터를
미세하게 조정하는 것으로~
Frozen Layer 범위에 변화를 주거나
컴파일에 변화를 주어 추가로
학습을 시키는 것을 말합니다.
1. base_model을 학습 가능토록 만든다.
base_model.trainable = True
model.summary()
summary()로 확인하기
2. 몇번째 레이어까지 학습 불가능하게 할지 정한다.
base_model.layers
len(base_model.layers)
길이를 구해봅니다.
end_layer = 130
for layer in base_model.layers[ : end_layer ] :
layer.trainable = False
model.summary()
summary()로 다시 확인해 봅니다.
# 모델 컴파일하기
model.compile(Adam(0.0001), 'categorical_crossentropy', ['accuracy'])
# 아까 학습한거에서 이어서 학습하도록 한다.
epoch_history = model.fit(train_generator, epochs=20, validation_data=(X_val, y_val), callbacks=[cp, csv_logger])
# 모델 평가하기
model.evaluate(X_test, y_test)
모델을 컴파일하고
평가 합니다.
힐링아무의 코딩일기 힐코딩!!
'A.I > Deep Learning' 카테고리의 다른 글
딥러닝/ 에포크 시마다 기록(log)을 남길 수 있는 CSVLogger (0) | 2022.06.16 |
---|---|
딥러닝/ 에포크 시마다 가장 좋은 모델을 저장하는 ModelCheckpoint (0) | 2022.06.16 |
딥러닝/ Transer Learning을 하기 위한 코드와 설명 (0) | 2022.06.16 |
딥러닝/ EarlyStopping 라이브러리 사용법 (0) | 2022.06.13 |
Phthon(파이썬) 딥러닝 밸리데이션 데이터란 무엇이고, 코드에서 사용하는 방법 (0) | 2022.06.13 |
댓글