给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程序的执行效率的教程
Apr 02 Python
在Python的Flask框架中使用日期和时间的教程
Apr 21 Python
python中的break、continue、exit()、pass全面解析
Aug 05 Python
django js实现部分页面刷新的示例代码
May 28 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
Mar 29 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
Python中的self用法详解
Aug 06 Python
python文件处理fileinput使用方法详解
Jan 02 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 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如何调用webservice应用介绍
2012/11/24 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
php遍历CSV类实例
2015/04/14 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
javascript new一个对象的实质
2010/01/07 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
大学生演讲稿范文
2014/01/11 职场文书
决心书范文
2014/03/11 职场文书
大学生英文求职信范文
2015/03/19 职场文书
教师节随笔
2015/08/15 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android