mdl_A = keras.models.load("mdl_A.hf")
mdl_B_on_A = keras.models.Sequential(mdl_A.layers[:-1])
mdl_B_on_A.add(keras.layers.Dense(1, activation = "sigmoid")
需要注意的是,此时mdl_A
和mdl_B
共享神经网络的权重。解决的方法是使用clone
使mdl_A
和mdl_B
互不影响。
mdl_A_clone = keras.models.clone_model(model_A)
mdl_A_clone.set_weights(mdl_A.get_weights())
clone
只拷贝网络结构,不会拷贝权重等训练好的参数,因此clone
之后需要用set_weights
把mdl_A
的参数也一同拷贝过去。