如何在它们之间加载 model multiple timesdon't share weights ,在顶部构建一个新模型并且 save 新模型?

我做了什么:

def loadPretrainedModel(minuslayers, addStr):
    model = model_from_json(myModelJson)
    model.load_weights(weightsfile)
    for i in range(minusLayers):
        model.layers.pop()
        model.outputs = [model.layers[len(model.layers) - 1].output]
        model.layers[len(model.layers) - 1].outbound_nodes = []

    for layer in model.layers:
        layer.name = layer.name + addStr

    model.name = model.name + addStr
    return model


pt_model1 = loadPretrainedModel(3, "")
pt_model1 = pt_model1([newInput1])
pt_model2 = loadPretrainedModel(3, "_mod2")
pt_model2 = pt_model2([newInput2])

newModel = Concatenate(axis=1)([pt_model1, pt_model2])
newModel = Dense(180, activation='tanh')(newModel)
... More Layers ..
newModel = Model(input=[newInput1, newInput2],outputs=myOutputs)

我无法用 newModel.save(myPath) Keras抛出新模型

:'out-ib_0'

该模型编译和训练,但似乎共享pt_model1和pt_model2之间的权重,因为调试模式中的权重名称是相同的 .