Keras 中间层可视化,附代码详解,以Mnist数字为对象
最近搭建了个Resnet50 的神经网络模型,相看一看中间某一层的输出结果,想感性的感受下逐层提取特征的过程,以数字0为对象,对数字0逐层提取特征,话不多说直接上代码,关于如何搭建Resnet,可以参见博主的博客主页,也可以参见网上资料,关于如何搭建资源很丰富,在这里直接导入已经搭建并且 训练好的神经网络模型。
#!/usr/bin/env python 3.6
#_*_coding:utf-8 _*_
#@Time :2019/11/16 22:42
#@Author :控制工程小小白
#@FileName: virtual.py #@Software: PyCharm
from keras.models import load_model
from keras import backend as K
import cv2
import numpy as np
import processor
from matplotlib import pyplot as plt
from Resnet import Resnet50
from keras.models import Model
from keras import backend as K
from keras.layers import Input
model=Resnet50()#导入模型,该模型的搭建代码见博主的下一篇博客
image_path=r'G:\make_Mnist_data\mnist_train\0.jpg'#测试图片保存的路径
image=cv2.imread(image_path)#读取图片 image_arr = cv2.resize(image, (32, 32))# 根据载入的训练好的模型的配置,将图像统一尺寸
print(image_arr.shape)
image_arr = np.expand_dims(image_arr, axis=0) model.load_weights('./My_keras_Resnet50_weight_Adma.h5') #给Resnet加载已经训练好了的权值文件。
layer_1 = K.function([model.layers[0].input], [model.layers[40].output])#第一个 model.layers[0],不修改,表示输入数据;第二个model.layers[you wanted],修改为你需要输出的层数的编号 print(model.layers[40].output.shape)#输出第40层的形状 #第40层后的特征图展示,输出是(?,19,19,512),(样本个数,特征图尺寸长,特征图尺寸宽,特征图个数) plt.subplots_adjust(left=None, bottom=None, right=None, top=None,
wspace=None, hspace=None)#调整图与图之间的间隔
f1 = layer_1([image_arr])[0]#只修改inpu_image
for _ in range(512):#512表示特征图通道数
show_img = f1[:, :, :, _]
show_img.shape = [19, 19]
plt.subplot(32, 16, _ + 1)#将特征图显示为32行16列
plt.subplot(32, 16, _ + 1)
plt.imshow(show_img, cmap='gray')
plt.axis('off')
plt.show()

此图即是提取中间层的结果。
Keras 中间层可视化,附代码详解,以Mnist数字为对象的更多相关文章
- 【TensorFlow】理解tf.nn.conv2d方法 ( 附代码详解注释 )
最近在研究学习TensorFlow,在做识别手写数字的demo时,遇到了tf.nn.conv2d这个方法,查阅了官网的API 发现讲得比较简略,还是没理解.google了一下,参考了网上一些朋友写得博 ...
- 代码详解:TensorFlow Core带你探索深度神经网络“黑匣子”
来源商业新知网,原标题:代码详解:TensorFlow Core带你探索深度神经网络“黑匣子” 想学TensorFlow?先从低阶API开始吧~某种程度而言,它能够帮助我们更好地理解Tensorflo ...
- LocalDate/LocalDateTime与String的互相转换示例(附DateTimeFormatter详解)
摘自:https://www.jianshu.com/p/b7e72e585a37 LocalDate/LocalDateTime与String的互相转换示例(附DateTimeFormatter详解 ...
- BM算法 Boyer-Moore高质量实现代码详解与算法详解
Boyer-Moore高质量实现代码详解与算法详解 鉴于我见到对算法本身分析非常透彻的文章以及实现的非常精巧的文章,所以就转载了,本文的贡献在于将两者结合起来,方便大家了解代码实现! 算法详解转自:h ...
- ASP.NET MVC 5 学习教程:生成的代码详解
原文 ASP.NET MVC 5 学习教程:生成的代码详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...
- Github-karpathy/char-rnn代码详解
Github-karpathy/char-rnn代码详解 zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2016-1-10 ...
- JAVA类与类之间的全部关系简述+代码详解
本文转自: https://blog.csdn.net/wq6ylg08/article/details/81092056类和类之间关系包括了 is a,has a, use a三种关系(1)is a ...
- Java中String的intern方法,javap&cfr.jar反编译,javap反编译后二进制指令代码详解,Java8常量池的位置
一个例子 public class TestString{ public static void main(String[] args){ String a = "a"; Stri ...
- Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测 2017年12月13日 17:39:11 机器之心V 阅读数:5931 近日,Artur Suilin 等人发布了 Kaggl ...
随机推荐
- Faith 信念
Today I’d like to talk about faith. With faith, you’ll go further and never be lost. Faith is free a ...
- [WPF自定义控件库] 模仿UWP的ProgressRing
1. 为什么需要ProgressRing 虽然我认为这个控件库的控件需要模仿Aero2的外观,但总有例外,其中一个就是ProgressRing.ProgressRing是来自UWP的控件,部分代码参考 ...
- 01 【PMP】组织结构类型
[PMP]组织结构类型 1.简单型 描述:人员并肩工作,所有者/经营者直接做出主要决定并监督执行. PM角色:兼职(协调员) PM权限:极少(无) 项目管理人员:极少(无) 资源可用性:极少(无) ...
- php在哪里写代码?
php在哪里写代码? php可以在PhpStorm中写代码. PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码 ...
- 网络攻防实验任务三_(2)X-Scan通用漏洞扫描实验
首先在宿主机中打开xscan_gui.exe,结果系统直接将它删掉了. 大概是因为开了防火墙的缘故. 于是我在win7虚拟机中运行这个程序. 并且关闭防火墙,在win7中可以运行 我再试了一下win1 ...
- lamda和匿名内部类
匿名内部类 匿名内部类在日常编程中还是经常会使用的.比如 ArrayList<String> list=new ArrayList<>(); list.add(new Stri ...
- LeetCode 84--柱状图中最大的矩形( Largest Rectangle in Histogram) 85--最大矩形(Maximal Rectangle)
84题和85五题 基本是一样的,先说84题 84--柱状图中最大的矩形( Largest Rectangle in Histogram) 思路很简单,通过循环,分别判断第 i 个柱子能够延展的长度le ...
- 设计模式(三)Template Method模式
在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为Template Method模式即模板方法模式. 根据下面的示例程序理解模板方法模式. package BigJunOba.bjtu.Te ...
- itextsharp生成pdf
itextsharp在ios中可用,亲测 (一)生成文档 Document document = , , , ), , , , ); //Document document = new Documen ...
- mysql的一些常用操作(一)
1.启动Mysql服务 net start mysql 2.进入mysql环境中,由于自己没有设置密码,直接回车进入即可(要将bin加入到环境变量path中) mysql -u root -p 3.创 ...