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 相关文章推荐
pygame学习笔记(4):声音控制
Apr 15 Python
python友情链接检查方法
Jul 08 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
Python构建网页爬虫原理分析
Dec 19 Python
python编写弹球游戏的实现代码
Mar 12 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python time.sleep()是睡眠线程还是进程
Jul 09 Python
基于sklearn实现Bagging算法(python)
Jul 11 Python
python异常处理try except过程解析
Feb 03 Python
jupyter notebook实现显示行号
Apr 13 Python
python中time tzset()函数实例用法
Feb 18 Python
分享提高 Python 代码的可读性的技巧
Mar 03 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读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php实现文件下载代码分享
2014/08/19 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
javascript import css实例代码
2008/07/18 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
Python中的True,False条件判断实例分析
2015/01/12 Python
Python 占位符的使用方法详解
2019/07/10 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
机械工程师求职自我评价
2013/09/23 职场文书
人事部专员岗位职责
2014/03/04 职场文书
音乐教育感言
2014/03/05 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
欢迎新生标语
2014/10/06 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android