给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里对list中的整数求平均并排序
Sep 12 Python
线程和进程的区别及Python代码实例
Feb 04 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
python实现类之间的方法互相调用
Apr 29 Python
用python代码将tiff图片存储到jpg的方法
Dec 04 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
Python学习笔记之While循环用法分析
Aug 14 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
Python super()函数使用及多重继承
May 06 Python
小结Python的反射机制
Sep 28 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
python中的plt.cm.Paired用法说明
May 31 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
python服务器端收发请求的实现代码
2014/09/29 Python
python处理数据,存进hive表的方法
2018/07/04 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
软件测试常见笔试题
2012/02/04 面试题
市场营销管理制度
2014/01/29 职场文书
八一建军节感言
2014/02/28 职场文书
地理教师岗位职责
2014/03/16 职场文书
询价采购方案
2014/06/09 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
公司搬迁通知
2015/04/20 职场文书
优质服务标语口号
2015/12/26 职场文书
《我是什么》教学反思
2016/02/16 职场文书
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle