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写的Tkinter程序屏幕居中方法
Mar 10 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
python实现生成字符串大小写字母和数字的各种组合
Jan 01 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
Python数据类型之Number数字操作实例详解
May 08 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
python MD5加密的示例
Oct 19 Python
Python基础之常用库常用方法整理
Apr 30 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
XHProf报告字段含义的解析
2016/05/17 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python Tensor和Array对比分析
2020/01/08 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
python实现同一局域网下传输图片
2020/03/20 Python
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
纺织工程专业个人求职信范文
2014/01/27 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
五一口号
2014/06/19 职场文书
教室布置标语
2014/06/26 职场文书
小学生暑假生活总结
2015/07/13 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
JS监听Esc 键触发事键
2021/04/14 Javascript
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle