给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根据经纬度计算距离示例
Feb 16 Python
Python中给List添加元素的4种方法分享
Nov 28 Python
python变量不能以数字打头详解
Jul 06 Python
获取python文件扩展名和文件名方法
Feb 02 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
教你如何用Python实现人脸识别(含源代码)
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
东方红 - 来复式再生机的修复
2021/03/02 无线电
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
PHP fclose函数用法总结
2019/02/15 PHP
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
python实现银行实战系统
2020/02/26 Python
Python作用域与名字空间原理详解
2020/03/21 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
音乐教学案例
2014/01/30 职场文书
酒桌上的开场白
2015/06/01 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
退休欢送会主持词
2015/07/01 职场文书
汽车销售合同文本
2019/08/08 职场文书
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js