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 将字符串转换成字典dict
Mar 24 Python
python实现指定字符串补全空格的方法
Apr 30 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
Python使用PyCrypto实现AES加密功能示例
May 22 Python
python扫描proxy并获取可用代理ip的实例
Aug 07 Python
使用Python控制摄像头拍照并发邮件
Apr 23 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
Python实现自动访问网页的例子
Feb 21 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
python简单实现9宫格图片实例
Sep 03 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
jQuery 选择器理解
2010/03/16 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
Python语言生成水仙花数代码示例
2017/12/18 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
python3.6数独问题的解决
2019/01/21 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
好的自荐信的要求
2013/10/30 职场文书
运动会广播稿400字
2014/01/25 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
搞笑车尾标语
2014/06/23 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
端午节活动总结
2014/08/26 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
采购内勤岗位职责
2015/04/13 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书