给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网络编程之读取网站根目录实例
Sep 30 Python
Python 字典dict使用介绍
Nov 30 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
Python实现合并excel表格的方法分析
Apr 13 Python
linux中如何使用python3获取ip地址
Jul 15 Python
python 数据提取及拆分的实现代码
Aug 26 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
基于keras中的回调函数用法说明
Jun 17 Python
python用Configobj模块读取配置文件
Sep 26 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
Feb 02 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
php 注释规范
2012/03/29 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
python实现简单聊天室功能 可以私聊
2019/07/12 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
如何在python中写hive脚本
2019/11/08 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
同事打架检讨书
2014/02/04 职场文书
公立医院改革实施方案
2014/03/14 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang