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的函数嵌套的使用方法
Jan 24 Python
Python map和reduce函数用法示例
Feb 26 Python
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
Python中django学习心得
Dec 06 Python
名片管理系统python版
Jan 11 Python
python简易远程控制单线程版
Jun 20 Python
django中media媒体路径设置的步骤
Nov 15 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
Python接口测试数据库封装实现原理
May 09 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 Python
python 基于selenium实现鼠标拖拽功能
Dec 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
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
索趣科技的答案
2007/02/07 Javascript
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
Vue实现验证码功能
2019/12/03 Javascript
简单介绍Python中的len()函数的使用
2015/04/07 Python
使用Python绘制图表大全总结
2017/02/11 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python实现图片添加文字
2019/11/26 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
会计找工作求职信范文
2013/12/09 职场文书
学术诚信承诺书
2014/05/26 职场文书
党支部三会一课计划
2014/09/24 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
golang语言指针操作
2022/04/14 Golang