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 相关文章推荐
pygame播放音乐的方法
May 19 Python
python查看zip包中文件及大小的方法
Jul 09 Python
Python入门_浅谈逻辑判断与运算符
May 16 Python
python查看列的唯一值方法
Jul 17 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
python安装numpy和pandas的方法步骤
May 27 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
django admin后管定制-显示字段的实例
Mar 11 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
Sep 14 Python
python 获取计算机的网卡信息
Feb 18 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
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python 拼接文件路径的方法
2018/10/23 Python
python使用插值法画出平滑曲线
2018/12/15 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
python游戏开发的五个案例分享
2020/03/09 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
Python random模块的使用示例
2020/10/10 Python
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
广告创意求职信
2014/03/17 职场文书
四查四看整改措施
2014/09/19 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
保留意见审计报告
2015/06/05 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
JavaScript函数柯里化
2021/11/07 Javascript
Python中如何处理常见报错
2022/01/18 Python