给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中字符编码简介、方法及使用建议
Jan 08 Python
用Python的Django框架来制作一个RSS阅读器
Jul 22 Python
python中zip()方法应用实例分析
Apr 16 Python
python中Switch/Case实现的示例代码
Nov 09 Python
python编写Logistic逻辑回归
Dec 30 Python
python使用KNN算法识别手写数字
Apr 25 Python
python实现海螺图片的方法示例
May 12 Python
python生成随机红包的实例写法
Sep 02 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
Jan 06 Python
Python 中由 yield 实现异步操作
May 04 Python
Python之基础函数案例详解
Aug 30 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调用Java对象的方法
2006/10/09 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Python中Selenium模块的使用详解
2020/10/09 Python
用python制作个视频下载器
2021/02/01 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
信访工作汇报材料
2014/10/27 职场文书
第二次离婚起诉书
2015/05/18 职场文书
公司周年庆典致辞
2015/07/30 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
Python中常见的导入方式总结
2021/05/06 Python