给keras层命名,并提取中间层输出值,保存到文档的实例


Posted in Python onMay 23, 2020

更新:

感谢评论区提供的方案。

采用model.summary(),model.get_config()和for循环均可获得Keras的层名。

示例如下图

给keras层命名,并提取中间层输出值,保存到文档的实例

对于keras特定层的命名,只需在层内添加 name 即可

model.add(Activation('softmax',name='dense_1') )  # 注意 name 要放于函数内

#提取中间层
from keras.models import Model
import keras
layer_name = 'dense_1' #获取层的名称
intermediate_layer_model = Model(inputs=model.input, 
         outputs=model.get_layer(layer_name).output)#创建的新模型
intermediate_output = intermediate_layer_model.predict(X_test)

doc = open(r'C://Users//CCUT04//Desktop//1.txt','w')
for i in intermediate_output:
 print(i)
 print(i , file = doc)
doc.close()

补充知识:关于用keras提取NN中间layer输出

Build model...
__________________________________________________________________________________________________
Layer (type)     Output Shape   Param #  Connected to      
==================================================================================================
main_input (InputLayer)   (None, 89, 39)  0           
__________________________________________________________________________________________________
cropping1d_1 (Cropping1D)  (None, 85, 39)  0   main_input[0][0]     
__________________________________________________________________________________________________
cropping1d_2 (Cropping1D)  (None, 85, 39)  0   main_input[0][0]     
__________________________________________________________________________________________________
cropping1d_3 (Cropping1D)  (None, 85, 39)  0   main_input[0][0]     
__________________________________________________________________________________________________
cropping1d_4 (Cropping1D)  (None, 85, 39)  0   main_input[0][0]     
__________________________________________________________________________________________________
cropping1d_5 (Cropping1D)  (None, 85, 39)  0   main_input[0][0]     
__________________________________________________________________________________________________
concatenate_1 (Concatenate)  (None, 85, 195)  0   cropping1d_1[0][0]    
                 cropping1d_2[0][0]    
                 cropping1d_3[0][0]    
                 cropping1d_4[0][0]    
                 cropping1d_5[0][0]    
__________________________________________________________________________________________________
fc1 (BatchNormalization)  (None, 85, 195)  780   concatenate_1[0][0]    
__________________________________________________________________________________________________
fc2 (Bidirectional)    (None, 85, 2048)  9994240  fc1[0][0]      
__________________________________________________________________________________________________
fc3 (BatchNormalization)  (None, 85, 2048)  8192  fc2[0][0]      
__________________________________________________________________________________________________
global_average_pooling1d_1 (Glo (None, 2048)   0   fc3[0][0]      
__________________________________________________________________________________________________
main_output (Dense)    (None, 2)   4098  global_average_pooling1d_1[0][0] 
==================================================================================================
Total params: 10,007,310
Trainable params: 10,002,824
Non-trainable params: 4,486
__________________________________________________________________________________________________

假设我网络层数是上面这个结构.

如果我想得到pooling的输出, keras上有两张方法。

intermediate_layer_model = Model(inputs=model.input,outputs=model.get_layer(str('global_average_pooling1d_1')).output)
#model.summary()
#model.get_layer(str('cropping1d_1'))
intermediate_output = intermediate_layer_model.predict(data)

data是你的输入所用的数据....

from keras import backend as K
get_11rd_layer_output = K.function([model.layers[0].input],
         [model.layers[10].output])
layer_output = get_11rd_layer_output([data])[0]

我这里第10层是Pooling层.

这两个代码的output是一样的..

一般我看人用的都是第二个...

以上这篇给keras层命名,并提取中间层输出值,保存到文档的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中find()方法的使用
May 18 Python
python subprocess 杀掉全部派生的子进程方法
Jan 16 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
使用sklearn之LabelEncoder将Label标准化的方法
Jul 11 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
实例介绍Python中整型
Feb 11 Python
pandas-resample按时间聚合实例
Dec 27 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
python 实现学生信息管理系统的示例
Nov 28 Python
keras小技巧——获取某一个网络层的输出方式
May 23 #Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 #Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 #Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 #Python
Softmax函数原理及Python实现过程解析
May 22 #Python
Python接口测试文件上传实例解析
May 22 #Python
计算Python Numpy向量之间的欧氏距离实例
May 22 #Python
You might like
php开启openssl的方法
2014/05/15 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
javascript实现点击产生随机图形
2021/01/25 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
python实现弹窗祝福效果
2019/04/07 Python
解决Python二维数组赋值问题
2019/11/28 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
Python字典实现伪切片功能
2020/10/28 Python
医药工作者的求职信范文
2013/09/21 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
酒鬼酒广告词
2014/03/21 职场文书
年度考核个人总结
2015/03/06 职场文书
教师远程培训心得体会
2016/01/09 职场文书
Docker下安装Oracle19c
2022/04/13 Servers