给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 内置字符串处理函数的使用方法
Jun 11 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Python处理XML格式数据的方法详解
Mar 21 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
python决策树之CART分类回归树详解
Dec 20 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 Python
使用tensorflow根据输入更改tensor shape
Jun 23 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 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
php不用正则验证真假身份证
2013/11/06 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
利用php输出不同的心形图案
2016/04/22 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
python 实现Harris角点检测算法
2020/12/11 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
函授本科自我鉴定
2013/11/03 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
大学军训感言300字
2014/03/09 职场文书
学习决心书
2014/03/11 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS