给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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
Python中使用Inotify监控文件实例
Feb 14 Python
Python多线程编程(六):可重入锁RLock
Apr 05 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
解决python写入mysql中datetime类型遇到的问题
Jun 21 Python
python绘制立方体的方法
Jul 02 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
如何通过Python实现标签云算法
Jul 02 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
python 多进程共享全局变量之Manager()详解
Aug 15 Python
Python3进制之间的转换代码实例
Aug 24 Python
python连接PostgreSQL数据库的过程详解
Sep 18 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中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
讲解Python中if语句的嵌套用法
2015/05/14 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
python连接mongodb密码认证实例
2018/10/16 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
python 伯努利分布详解
2020/02/25 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
土木工程专业自荐信
2013/10/04 职场文书
小学教学随笔感言
2014/02/26 职场文书
《春笋》教学反思
2014/04/15 职场文书
房产协议书范本2014
2014/09/30 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
活动总结模板大全
2015/05/11 职场文书
投资申请报告
2015/05/19 职场文书
撤诉状格式范本
2015/05/19 职场文书
唐山大地震观后感
2015/06/05 职场文书
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技