给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 22 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
Jan 08 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 Python
Django框架中表单的用法
Jun 10 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
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
详解用python实现简单的遗传算法
2018/01/02 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
django 读取图片到页面实例
2020/03/27 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
浅析Python的命名空间与作用域
2020/11/25 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
护士岗位职责
2014/02/16 职场文书
2014年团队工作总结
2014/11/24 职场文书
2015年度企业工作总结
2015/05/21 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js