개발

Model Ensamble in Keras

내공얌냠 2022. 12. 3. 16:40

Ensamble

End Game에서 Assemble! 하는 장면 기억하시나요

히어로들이 모여서 더 큰 힘을 발휘하는 것처럼 모델도 모이면 더 좋은 성능을 내기도 합니다.

 

그래서 그거 어떻게 하는 건데

keras 로는 이렇게 합니다. 모델을 불러와서 배열에 넣고 합쳐줍니다. 

import tensorflow as tf

# load model
model_path = 'models/'
resnet_best = 'resnet50_3_tuned1.h5'
incept_best = 'inception1.h5'
nasnet_best = 'NASNetMobile_1.h5'
resnet_model = tf.keras.models.load_model(model_path + resnet_best)
incept_model = tf.keras.models.load_model(model_path + incept_best)
nasnet_model = tf.keras.models.load_model(model_path + nasnet_best)

#  ensemble
models = [resnet_model2, incept_model, nasnet_model]
model_input = tf.keras.Input(shape=(224, 224, 3))
model_outputs = [model(model_input) for model in models]
ensemble_output = tf.keras.layers.Average()(model_outputs)
ensemble_model = tf.keras.Model(inputs=model_input, outputs=ensemble_output)

 


References

https://stackoverflow.com/questions/67647843/is-there-a-way-to-ensemble-two-keras-h5-models-trained-for-same-classes

 

Is there a way to ensemble two keras (h5) models trained for same classes

I have trained two keras models with different datasets for same class labels. How could I ensemble the models keras_model.h5 and keras_model2.h5 together and make another keras model say keras_ens...

stackoverflow.com

 

728x90
반응형