Sur*_*iya 7 python machine-learning ensemble-learning keras image-classification
我已经用不同的数据集为相同的类标签训练了两个 keras 模型。我如何将模型 keras_model.h5 和 keras_model2.h5 集成在一起,并制作另一个 keras 模型,即 keras_ensemble.h5。我尝试参考各种互联网资源,但运气不佳。有人可以帮我编写集成它的代码吗? 这是我训练过的模型
请帮助我解决这个问题。谢谢。
编辑:这是我的代码,在回答我的问题 Frightera 的人的帮助下我能够完成该代码
import tensorflow.keras
import tensorflow as tf
from PIL import Image, ImageOps
import numpy as np
# Disable scientific notation for clarity
np.set_printoptions(suppress=True)
# Load the model
keras_model = tensorflow.keras.models.load_model('keras_model.h5', compile=False)
keras_model._name = 'model1'
keras_model2 = tensorflow.keras.models.load_model('keras_model2.h5', compile=False)
keras_model2._name = 'model2'
models = [keras_model, keras_model2]
#model_input = tf.keras.Input(shape=(125, 125, 3))
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)
Run Code Online (Sandbox Code Playgroud)
编辑 我如何获得 h5 格式的 keras 集成模型?
Fri*_*era 20
你可以像这样对它们进行平均集成:
models = [keras_model, keras_model2]
model_input = tf.keras.Input(shape=(125, 125, 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)
Run Code Online (Sandbox Code Playgroud)
编辑:如果您想创建加权整体,您可以创建一个自定义图层,如下所示:
class WeightedAverageLayer(tf.keras.layers.Layer):
def __init__(self, w1, w2, **kwargs):
super(WeightedAverageLayer, self).__init__(**kwargs)
self.w1 = w1
self.w2 = w2
def call(self, inputs):
return self.w1 * inputs[0] + self.w2 * inputs[1]
Run Code Online (Sandbox Code Playgroud)
所以输出层应该是这样的:
ensemble_output = WeightedAverageLayer(0.6, 0.4)(model_outputs)
Run Code Online (Sandbox Code Playgroud)
此处,第一个模型的输出按 因子缩放0.6。同样的情况也适用于第二个模型,因子为0.4。
注意:WeightedAverageLayer(0.5, 0.5)将与 相同tf.keras.layers.Average()。
| 归档时间: |
|
| 查看次数: |
8427 次 |
| 最近记录: |