给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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
wxPython中文教程入门实例
Jun 09 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
使用python实现tcp自动重连
Jul 02 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
python人民币小写转大写辅助工具
Jun 20 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
python在协程中增加任务实例操作
Feb 28 Python
Python 制作自动化翻译工具
Apr 25 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
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
js DOM模型操作
2009/12/28 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
python内置数据类型之列表操作
2018/11/12 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
次世代生活态度:Hypebeast
2018/07/05 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
个人对照检查材料
2014/02/12 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
感恩教育活动总结
2014/05/05 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
保研导师推荐信
2015/03/25 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
iPhone13再次曝光
2021/04/15 数码科技
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
Nginx反向代理学习实例教程
2021/10/24 Servers