给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计算三角函数之atan()方法的使用
May 15 Python
Python中取整的几种方法小结
Jan 06 Python
python实现对任意大小图片均匀切割的示例
Dec 05 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
详解python做UI界面的方法
Feb 27 Python
python设置环境变量的作用和实例
Jul 09 Python
python对csv文件追加写入列的方法
Aug 01 Python
python环境下安装opencv库的方法
Mar 05 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 Python
安装pytorch时报sslerror错误的解决方案
May 17 Python
详解非极大值抑制算法之Python实现
Jun 28 Python
Python读写yaml文件
Mar 20 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
咖啡知识大全
2021/03/03 新手入门
PHP生成带有雪花背景的验证码
2008/09/28 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
用javascript实现自定义标签
2007/05/08 Javascript
javascript数组使用调用方法汇总
2007/12/08 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
Python实现二分查找与bisect模块详解
2017/01/13 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
意大利团购网站:Groupon意大利
2016/10/11 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
销售助理岗位职责
2014/02/21 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
留学生求职信
2014/06/03 职场文书
材料化学专业求职信
2014/07/15 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
工作态度检讨书范文
2015/05/06 职场文书
运动会观后感
2015/06/09 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android