본문 바로가기

Deep Learning

Deep Learning : Fine Tuning을 하기 위한 코드와 설명


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)