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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
Python实现遍历数据库并获取key的值
May 17 Python
使用Python实现简单的服务器功能
Aug 25 Python
python Opencv将图片转为字符画
Feb 19 Python
PyQt5每天必学之拖放事件
Aug 27 Python
python语言元素知识点详解
May 15 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
利用python在excel中画图的实现方法
Mar 17 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 Python
python使用torch随机初始化参数
Mar 22 Python
python文件与路径操作神器 pathlib
Apr 01 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数据饼图效果实现代码
2011/11/23 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
php封装的验证码类分享
2017/02/26 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python基础教程之lambda表达式使用方法
2014/02/12 Python
python中的set实现不重复的排序原理
2018/01/24 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
SQL Server笔试题
2012/01/10 面试题
《赵州桥》教学反思
2014/02/17 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js