Keras负载模型多次,无重量共享,在顶部构建模型并保存

时间:2018-04-04 22:50:49

标签: python tensorflow deep-learning keras

如何在他们之间加载模型多次不分享权重,在顶部构建新模型并保存新模式?

我做了什么:

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抛出

  

{KeyError}:' out-ib_0'

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

0 个答案:

没有答案