如何在它们之间加载 model multiple times , don'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之间的权重,因为调试模式中的权重名称是相同的 .