Чистый способ сделать это, используя опцию model.load_weights(file, by_name=True)
.Вам нужно назначить одинаковые имена для общих слоев:
# model 1 ...
model1.add(Dense(64, name="dense1"))
model1.add(Dense(2, name="dense2"))
# model 2 ...
model2.add(Dense(64, name="dense1"))
model2.add(Dense(32, name="notshared"))
# train model 1 and save
model1.save(filename) # or model.save_weights(filename)
# Load shared layers into model 2
model2.load_weights(filename, by_name=True) # will skip non-matching layers
# So it will only load "dense1"
Суть в том, что вы загружаете веса модели 2 из файла весов модели 1, но только совпадающие имена слоев.Слои должны быть одинаковой формы и типа.