keras得到每层的系数方式


Posted in Python onJune 15, 2020

使用keras搭建好一个模型,训练好,怎么得到每层的系数呢:

weights = np.array(model.get_weights())
print(weights)
print(weights[0].shape)
print(weights[1].shape)

这样系数就被存放到一个np中了。

补充知识:使用keras框架编写的深度模型 输出及每一层的特征可视化

使用训练好的模型进行预测的时候,为分析效果,通常需要对特征提取过程中的特征映射做可视化操作

本文以keras为例,对特征可视化操作进行详解。

一、首先,对模型的最后输出层进行特征可视化

from keras import models
#使用matlpotlib模块进行绘图的操作
import matplotlib.pylot as plt
#images是一个batch的输入图像,batch_input[batch图像数量,尺寸高,尺寸宽,3(rgb通道数量)]
#model是训练好的模型
#model = load_model('path')
nb_images = len(images)
batch_input = np.zeros((nb_images, net_h, net_w, 3))

# preprocess the input
for i in range(nb_images):
 batch_input[i] = preprocess_input(images[i], net_h, net_w)  

# run the prediction
#batch_output为一个样本的所有通道输出特征映射,本文应用特征金字塔结构,有三个维度的特征提取层
#batch_output[0]是第一个维度的特征提取层所有通道的输出特征映射,四维,本文例子中为[1, 52, 52, 72]
#[一个样本,尺寸,尺寸,通道数]

#也可以是batch_output = model.predict(batch_input)
batch_output = model.predict_on_batch(batch_input)
batch_boxes = [None]*nb_images
print(batch_output[0].shape)
#display feature map

#下面为归一化到0-255空间内
xx = batch_output[0]
max = np.max(xx)
print(max,"max value is :")
X_output = X_output .astype("float32") / max * 255

#下面的30为第30个通道
X_output = xx[0,:,:,30]

#使用matplotlib显示图像
plt.figure()
plt.imshow(X_output, cmap='viridis')
plt.show()

#输出结果

原始图像

keras得到每层的系数方式

输出层的特征可视化

keras得到每层的系数方式

二、可视化某一层的特征映射

from keras import backend as k
from keras import models
import matplotlib.pylot as plt
model = load_model('...')
layer_1 =k.function([model.layers[0].input], [model.layers[1].output])

#第2个model,layers[]改成你想显示的层数
f1 = layer_1[input_image][0]
f1.image = f1[0,:,:,channel]
plt,matshow(f1.image, camp='viridis')
plt.show()

示例:

from keras import models
import matplotlib.pylot as plt
from keras import backend as k
#images是一个batch的输入图像,batch_input[batch图像数量,尺寸高,尺寸宽,3(rgb通道数量)]
#model是训练好的模型
#model = load_model('path')
nb_images = len(images)
batch_input = np.zeros((nb_images, net_h, net_w, 3))

# preprocess the input
for i in range(nb_images):
 batch_input[i] = preprocess_input(images[i], net_h, net_w)  
#display feature map

#可视化第一层的特征映射
layer_1 = K.function([model.layers[0].input], [model.layers[1].output])
f1 = layer_1([batch_input])[0]
print(f1.shape)
max = np.max(f1)
f1 =f1.astype("float32") / max * 255
plt.figure()

#显示第一层网络前5个通道的特征映射
for i in range(5):
 plt.subplot(2, 3, i+1)
 plt.imshow(f1[0,:,:,i], cmap='viridis')
plt.show()

输出结果:

keras得到每层的系数方式

以上这篇keras得到每层的系数方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python利用ansible分发处理任务
Aug 04 Python
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
浅谈django三种缓存模式的使用及注意点
Sep 30 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 Python
python是怎么被发明的
Jun 15 Python
Python基于time模块表示时间常用方法
Jun 18 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 Python
Python类及获取对象属性方法解析
Jun 15 #Python
在Keras中实现保存和加载权重及模型结构
Jun 15 #Python
简单了解Python多态与属性运行原理
Jun 15 #Python
Python类super()及私有属性原理解析
Jun 15 #Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 #Python
Python StringIO及BytesIO包使用方法解析
Jun 15 #Python
Python smtp邮件发送模块用法教程
Jun 15 #Python
You might like
php 进度条实现代码
2009/03/10 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
JS删除数组元素的函数介绍
2013/03/27 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
DOM 事件流详解
2015/01/20 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
对python Tkinter Text的用法详解
2018/10/11 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
Python调用.NET库的方法步骤
2019/12/27 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
法律专业自我鉴定
2013/10/03 职场文书
预备党员思想汇报
2014/01/08 职场文书
打架检讨书800字
2014/01/10 职场文书
525心理活动总结
2014/07/04 职场文书
图文详解nginx日志切割的实现
2022/01/18 Servers