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使用paramiko实现远程拷贝文件的方法
Apr 18 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Python中进程和线程的区别详解
Oct 29 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
详解Python locals()的陷阱
Mar 26 Python
python从入门到精通 windows安装python图文教程
May 18 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
Python内置加密模块用法解析
Nov 25 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
全网最全python库selenium自动化使用详细教程
Jan 12 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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python中property函数用法实例分析
2018/06/04 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
Django密码系统实现过程详解
2019/07/19 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
python进行参数传递的方法
2020/05/12 Python
python合并多个excel文件的示例
2020/09/23 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
艺人经纪人岗位职责
2014/04/15 职场文书
新文化运动的口号
2014/06/21 职场文书
设计师求职信
2014/07/01 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书