def load_all_models(n_models):
all_models = list()
for i in range(n_models):
define filename for this ensemble
filename = 'models/model_' + str(i + 1) + '.h5'
# load model from file
model = load_model(filename)
# add to list of members
all_models.append(model)
print('>loaded %s' % filename)
return all_models
define stacked model from multiple member input models
def define_stacked_model(members):
update all layers in all models to not be trainable
for i in range(len(members)):
model = members[i]
for layer in model.layers:
# make not trainable
layer.trainable = False
# rename to avoid 'unique layer name' issue
layer._name = 'ensemble_' + str(i+1) + '_' + layer.name
# define multi-headed input
ensemble_visible = [model.input for model in members]
# concatenate merge output from each model
ensemble_outputs = [model.output for model in members]
merge = concatenate(ensemble_outputs)
hidden = Dense(10, activation='relu')(merge)
output = Dense(3, activation='linear')(hidden)
model = Model(inputs=ensemble_visible, outputs=output)
# plot graph of ensemble
plot_model(model, show_shapes=True, to_file='model_graph.png')
# compile
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mean_squared_error'])
return model
I'm a beginner with machine learning. Can you help me with this?
This is my code below:
def load_all_models(n_models): all_models = list() for i in range(n_models):
define filename for this ensemble
define stacked model from multiple member input models
def define_stacked_model(members):
update all layers in all models to not be trainable
I'm a beginner with machine learning. Can you help me with this?