keras 特征图可视化实例(中间层)


Posted in Python onJanuary 24, 2020

鉴于最近一段时间一直在折腾的CNN网络效果不太理想,主要目标是为了检测出图像中的一些关键点,可以参考人脸的关键点检测算法。

但是由于从数据集的制作是自己完成的,所以数据集质量可能有待商榷,训练效果不好的原因可能也是因为数据集没有制作好(标点实在是太累了)。

于是想看看自己做的数据集在进入到网络后那些中间的隐藏层到底发生了哪些变化。

今天主要是用已经训练好的mnist模型来提前测试一下,这里的mnist模型的准确度已经达到了98%左右。

使用的比较简单的一个模型:

def simple_cnn():
 input_data = Input(shape=(28, 28, 1))
 x = Conv2D(64, kernel_size=3, padding='same', activation='relu', name='conv1')(input_data)
 x = MaxPooling2D(pool_size=2, strides=2, name='maxpool1')(x)
 x = Conv2D(32, kernel_size=3, padding='same', activation='relu', name='conv2')(x)
 x = MaxPooling2D(pool_size=2, strides=2, name='maxpool2')(x)
 x = Dropout(0.25)(x)
 # 获得最后一层卷积层的输出
 # 添加自己的全连接
 x = Flatten(name='flatten')(x)
 x = Dense(128, activation='relu', name='fc1')(x)
 x = Dropout(0.25)(x)
 x = Dense(10, activation='softmax', name='fc2')(x)
 model = Model(inputs=input_data, outputs=x)

此模型已经训练好了,跑了10个epoch,验证集0.33

keras 特征图可视化实例(中间层)

这里的效果还是很好的,┓( ´∀` )┏

下面在网上搞了张手写数字

keras 特征图可视化实例(中间层)

使用网络进行预测,这里就先给出如何可视化第一层的卷积层的输出吧,哇哈哈

代码:

input_data = Input(shape=(28, 28, 1))
 x = Conv2D(64, kernel_size=3, padding='same', activation='relu', name='conv1')(input_data)
 x = MaxPooling2D(pool_size=2, strides=2, name='maxpool1')(x)
 x = Conv2D(32, kernel_size=3, padding='same', activation='relu', name='conv2')(x)
 x = MaxPooling2D(pool_size=2, strides=2, name='maxpool2')(x)
 x = Dropout(0.25)(x)
 x = Flatten(name='flatten')(x)
 x = Dense(128, activation='relu', name='fc1')(x)
 x = Dropout(0.25)(x)
 x = Dense(10, activation='softmax', name='fc2')(x)
 model = Model(inputs=input_data, outputs=x)
 
 model.load_weights('final_model_mnist_2019_1_28.h5')
 
 raw_img = cv2.imread('test.png')
 test_img = load_img('test.png', color_mode='grayscale', target_size=(28, 28))
 test_img = np.array(test_img)
 test_img = np.expand_dims(test_img, axis=0)
 test_img = np.expand_dims(test_img, axis=3)
 
 conv1_layer = Model(inputs=input_data, outputs=model.get_layer(index=1).output)
 
 conv1_output = conv1_layer.predict(test_img)
 
 for i in range(64):
  show_img = conv1_output[:, :, :, i]
  print(show_img.shape)
  show_img.shape = [28,28]
  cv2.imshow('img', show_img)
  cv2.waitKey(0)

核心方法就是通过加载模型后,新建Model,将输出部分换为你想要查看的网络层数即可,当然get_layer()包括了name和index两个参数。最后通过遍历当前卷积层的所有特征映射,将每一个都展示出来。就可以了。

keras 特征图可视化实例(中间层)

以上这篇keras 特征图可视化实例(中间层)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python新手经常遇到的17个错误分析
Jul 30 Python
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
收藏整理的一些Python常用方法和技巧
May 18 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
python统计字母、空格、数字等字符个数的实例
Jun 29 Python
在Mac上删除自己安装的Python方法
Oct 29 Python
python画双y轴图像的示例代码
Jul 07 Python
Django异步任务线程池实现原理
Dec 17 Python
如何把python项目部署到linux服务器
Aug 26 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 Python
基于keras输出中间层结果的2种实现方式
Jan 24 #Python
tensorflow 保存模型和取出中间权重例子
Jan 24 #Python
tensorflow 模型权重导出实例
Jan 24 #Python
在Tensorflow中查看权重的实现
Jan 24 #Python
tensorflow求导和梯度计算实例
Jan 23 #Python
Tensorflow的梯度异步更新示例
Jan 23 #Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 #Python
You might like
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
松下Panasonic RF-B65电路分析
2021/03/02 无线电
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php数组转成json格式的方法
2015/03/09 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
jquery 指南/入门基础
2007/11/30 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
详解python中的文件与目录操作
2017/07/11 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
物业管理专业自荐信
2014/07/01 职场文书
党员转正申请报告
2015/05/15 职场文书