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 del()函数用法
Mar 24 Python
python在windows下实现备份程序实例
Jul 04 Python
Python学习之asyncore模块用法实例教程
Sep 29 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
mac 安装python网络请求包requests方法
Jun 13 Python
对python:循环定义多个变量的实例详解
Jan 20 Python
pandas实现to_sql将DataFrame保存到数据库中
Jul 03 Python
Python Selenium安装及环境配置的实现
Mar 17 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
javascript CSS画图之基础篇
2009/07/29 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
vue-router传参用法详解
2019/01/19 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
python通过opencv实现批量剪切图片
2017/11/13 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
C#公司笔试题
2014/03/28 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
公司前台辞职报告
2014/01/19 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
学校食堂标语
2014/10/06 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
golang中的空接口使用详解
2021/03/30 Python