Fine Tuning 설명
# fine tuning은 트랜스퍼러닝을 한 상태에서 수행하는 방법이다.
# 1. 베이스 모델의 전체 레이어를 학습 가능토록 먼저 바꿔준다.
base_model.trainable = True
# 2. 베이스 모델의 전체 레이어 수를 확인한다.
len(base_model.layers)
# 3. 몇번째 레이어까지 학습이 안되게할지 결정해야 한다.
end_layer = 100
# 4. 베이스 모델의 첫번째 레이어부터 우리가 정한 레이어까지는 학습이 안되도록 설정해준다.
for layer in base_model.layers[ 0 : end_layer+1 ]:
layer.trainable = False
base_model.summary()
out 일부분 :
Total params: 2,257,984
Trainable params: 1,861,440
Non-trainable params: 396,544
- Compiling the model for fine-tuning
model.compile(tf.keras.optimizers.Adam(0.0001),'binary_crossentropy',metrics=['accuracy'])
- Fine tuning
model.fit(train_generator,epochs=5, validation_data =validation_generator)