Keras提取中间层特征

本文介绍了如何在Keras中搭建神经网络,包括添加卷积层、池化层和全连接层,然后提取特定层的输出作为特征,以便于进一步喂入其他模型。作者提供了详细的代码示例和参考链接。
摘要由CSDN通过智能技术生成

最近希望通过Keras搭建神经网络,并将神经网络的输出作为数据特征,再次feed其他模型,首先建立模型:

model = Sequential()
 
model.add(Convolution2D(filters=6, kernel_size=(5, 5), padding='valid', input_shape=(img_rows, img_cols, 1), activation='tanh'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(filters=16, kernel_size=(5, 5), padding='valid', activation='tanh'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(120, activation='tanh'))
model.add(Dense(84, activation='tanh'))
model.add(Dense(n_classes, activation='softmax'))

打印模型各层:

for index in range(8):
    layer=model.get_layer(index=index)
    # layer=model.layers[index] # 这样获取每一个层也是一样的
    print(model)

取其中一层作为特征提取器:

#提取第五层的输出
layer_model = Model(inputs=model.input, outputs=model.layers[4].output)
#使用这个提取出的模型进行预测,得到中间输出特征
x_train_Dense = layer_model.predict(Xtrain) #Xtrain为数据特征
 

参考资料:

[1] keras小技巧——获取某一个网络层的输出方式-腾讯云开发者社区-腾讯云 (tencent.com)

[2] keras提取网络中间层输出、中间层特征_keras提取中间层特征处理后继续-CSDN博客

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值