我想加载经过训练的Keras模型,并希望在其他模型中使用它的一部分。该模型由FUNCTIONAL API定义。
我的模型如下:
Input
|
|
V
Embedding
|
|
V
Core
|
|
V
Output
例如,Core是具有池化功能以及其他所有功能的CNN。我尝试使用model.layers.pop()删除“输出”,“输入”和“嵌入”,但这没有用,因为它不会更新图形。 我还尝试使用Core的第一层和最后一层来构建新模型,但这没有用,因为Core的第一层不是输入层。
我还试图弹出旧的Input and Embedding层并使用
input = Input(shape)
embedding = Embedding(...)
output = model(embedding)
new_model = Model(input, output)
定义新模型。但是,效果也不理想。 当我只删除输入并将其替换为新输入时,
是否可以使用弹出和更新图形或类似方法或重置图层的输入? 我认为问题在于,如果您从模型中删除图层,这些图层仍然会存储其输入,因此不会更新模型的内部结构。
我正在使用python 3.6,tensorflow作为后端和keras 2.2.2
感谢您的帮助