我训练了一个看起来像这样的模型:
Input -> Dense_1 -> Dense_2 -> Dense_3 -> Dense_4 -> Output
我想提取一个模型,以便可以将输入直接传递给Dense_2,这样我的模型就可以了
Input (In the correct shape for Dense_2) -> Dense_2 -> Dense_3 -> Dense_4 -> Output
我看到的所有技术都是初始化顺序模型并将这些模型连接在一起,例如
Input -> Dense_1 -> Sequential
但这不适用于我的情况。
答案 0 :(得分:1)
使用Keras功能API可以轻松实现。首先定义一个模型:
inp = Input(shape=(...))
d1 = Dense(..., name='d1')(inp)
d2 = Dense(..., name='d2')(d1)
d3 = Dense(..., name='d3')(d2)
out = Dense(..., name='d4')(d3)
model = Model(inp, out)
然后获取图层的输入并构建新模型。
inp_d2 = model.get_layer('d2').input
sub_model = Model(inp_d2, model.output)
请注意我如何手动放置图层名称,以便您可以使用get_layer
找到它们。