Вы можете создать новую модель, подобную этой:
from keras import backend as K
def std_layer(input):
return K.std(input)
model_input = Input(shape=input_dim)
def get_avg_std_model(models, model_input):
outputs = [model.outputs[0] for model in models]
avg = Average()(outputs)
a = Concatenate()(outputs)
std = Lambda(std_layer)(a)
model = Model(model_input, [avg, std], name='get_avg_std')
return model
models = [model1 , model2, model3, model4, model5]
get_avg_std = get_avg_std_model(models, model_input)
Вам нужно будет определить все ваши модели следующим образом:
model_input = Input(shape=input_dim)
def model_example(model_input):
x = Dense(1)(model_input)
model1 = Model(inputs=model_input, outputs=x)
return model
model1 = model_example(model_input)
model1.compile(optimizer='adadelta', loss='mse')
Все, что должно дать вам то, что вам нужно!
Держи меня в курсе.