例如,我训练了两个VGG16模型,权重不同,直接加载两个模型会导致第二个模型的预测与其原始预测不同,如下所示:
model1=get_model('model1.h5')
model2=get_model('model2.h5')
p1=model1.predict(x)
p2=model2.predict(x)
如果我在另一个图中加载第二个模型,则结果是正常的,就像这样:
model1=get_model('model1.h5')
p1=model1.predict(x)
graph1 = Graph()
config = tf.ConfigProto()
config.gpu_options.allow_growth=True
with graph1.as_default():
session1 = tf.Session(config=config)
with session1.as_default():
model2=get_model('model2.h5')
p2=model2.predict(x)
但是实际上我想混合两个模型的结果,像这样:
x=concatenate([model1.output,model2.output],axis=1)
model=Model(input=inp,outputs=x)
为此,两个模型应该在同一张图中。
我也尝试过重命名图层名称,但是没有用
for layer in model.layers:
layer.name = layer.name + str("_2")
那么,什么是正确的方法呢?
答案 0 :(得分:1)
我希望您已经用{
"something": "this\r\nis\r\na\r\nsample\r\nfile\r\n"
}
保存了模型,对吧?
我看不到model.save(...)
中的内容,但这可能不太正确,因为这两个模型都应该像以前一样工作。
get_model