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中的模块导入和读取键盘输入的方法
Oct 16 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
Django权限机制实现代码详解
Feb 05 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
详解Python发送email的三种方式
Oct 18 Python
Django Celery异步任务队列的实现
Jul 24 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
Python Django view 两种return的实现方式
Mar 16 Python
浅谈django 重载str 方法
May 19 Python
python中def是做什么的
Jun 10 Python
Python数据分析入门之教你怎么搭建环境
May 13 Python
如何在Python中妥善使用进度条详解
Apr 05 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
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
pandas中ix的使用详细讲解
2020/03/09 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
英文求职信范文
2014/05/23 职场文书
2015年小学开学寄语
2015/02/27 职场文书
教学督导岗位职责
2015/04/10 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
用Python生成会跳舞的美女
2022/01/18 Python
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫
Oracle中日期的使用方法实例
2022/07/07 Oracle