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的Django框架中的中间件
Jul 24 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
对python多线程与global变量详解
Nov 09 Python
python3中property使用方法详解
Apr 23 Python
Python中的asyncio代码详解
Jun 10 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
pytorch1.0中torch.nn.Conv2d用法详解
Jan 10 Python
python中图像通道分离与合并实例
Jan 17 Python
Python获取指定网段正在使用的IP
Dec 14 Python
python sleep和wait对比总结
Feb 03 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 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读取RSS(Feed)简单实例
2014/06/12 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python基础教程之元组操作使用详解
2014/03/25 Python
python使用nntp读取新闻组内容的方法
2015/05/08 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
Python高级用法总结
2018/05/26 Python
python字符串常用方法
2018/06/14 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python实现查找所有程序的安装信息
2020/02/18 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
应聘自荐书
2013/10/08 职场文书
生产内勤岗位职责
2013/12/07 职场文书
家长会主持词开场白
2014/03/18 职场文书
小学生作文评语大全
2014/04/21 职场文书
片区教研活动总结
2014/07/02 职场文书
车间主任岗位职责
2015/02/03 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL