Keras中间层输出的两种方式,即特征图可视化
训练好的模型,想要输入中间层的特征图,有两种方式:
1. 通过model.get_layer的方式。创建新的模型,输出为你要的层的名字。
创建模型,debug状态可以看到模型中,base_model/layers,图中红框即为layer名字,根据你想输出的层填写。最后网络feed数据后,输出的就是中间层结果。

2. 通过建立Keras的函数。
from keras import backend as K
from keras.models import load_model
from matplotlib import pyplot as plt
import cv2
import numpy as np def main():
model = load_model('../Project/weights.best_10-0.90.hdf5') images=cv2.imread("../Project/1.jpg")
# cv2.imshow("Image", images)
cv2.waitKey(0) # Turn the image into an array.
# 根据载入的训练好的模型的配置,将图像统一尺寸
image_arr = cv2.resize(images, (70, 70)) image_arr = np.expand_dims(image_arr, axis=0) # 第一个 model.layers[0],不修改,表示输入数据;
# 第二个model.layers[ ],修改为需要输出的层数的编号[]
layer_1 = K.function([model.layers[0].input], [model.layers[1].output]) # 只修改inpu_image
f1 = layer_1([image_arr])[0] # 第一层卷积后的特征图展示,输出是(1,66,66,32),(样本个数,特征图尺寸长,特征图尺寸宽,特征图个数)
for _ in range(16):
show_img = f1[:, :, :, _]
show_img.shape = [66, 66]
plt.subplot(4, 4, _ + 1)
# plt.imshow(show_img, cmap='black')
plt.imshow(show_img, cmap='gray')
plt.axis('off')
plt.show() if __name__ == '__main__':
main()
特征图可视化结果:

Keras中间层输出的两种方式,即特征图可视化的更多相关文章
- Logstash之控制台输出的两种方式
输出json output { stdout { codec => json } } 输出rubydebug output { stdout { codec => rubydebug } ...
- JavaScript输出的两种方式
var a="Hello World" document.write(a) //在网页上输出:Hello World var a="Hello World" c ...
- python格式化输出的两种方式对比
1.%符号方法和format()函数方法 2.对比: 1 print('我今年%d岁' %22.125) 2 print('我今年{0:f}'.format(22.125)) 3 #报错 4 #槽中类 ...
- Asp.net MVC在Razor中输出Html的两种方式
http://qubernet.blog.163.com/blog/static/177947284201485104616368/ Razor中所有的Html都会自动编码,这样就不需要我们手动去编码 ...
- 在Razor中输出Html的两种方式
Razor中所有的Html都会自动编码,这样就不需要我们手动去编码了(安全),但在需要输出Html时就是已经转义过的Html文本了,如下所示: @{ string thisTest = "& ...
- Python 输出百分比的两种方式
Python 输出百分比的两种方式 注: 在python3环境下测试. 方式1:直接使用参数格式化:{:.2%} {:.2%}: 显示小数点后2位 显示小数点后2位: >>> pri ...
- 两种方式实现java生成Excel
Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...
- 【代码笔记】iOS-向服务器传JSON数据的两种方式
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...
- linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权 ...
随机推荐
- spark reduceByKey
reduce(binary_function) reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给 ...
- Red Hat 6.5 Samba服务器的搭建(登录访问)
搭建Samba服务器是为了实现Linux共享目录之后,在Windows可以直接访问该共享目录. 现在介绍如何在红帽6.5系统中搭建Samba服务. 搭建Samba服务之前,yum源必须配置好,本地源和 ...
- easyui combogrid 下拉框 智能输入
1. 后台代码 using System;using System.Collections;using System.Collections.Generic;using System.Linq;usi ...
- CentOS 7 更换 阿里云/清华大学 yum 软件源
阿里云参考:https://opsx.alibaba.com/mirror?lang=zh-CN 清华参考:https://mirrors.tuna.tsinghua.edu.cn/help/cent ...
- GC Roots的理解以及如何判断一个对象为“垃圾”
http://blog.csdn.net/Great_Smile/article/details/49935307 这篇博客中讲解了哪些可以作为GC Roots以及如何判断一个对象为垃圾
- 1 Python入门及计算机硬件知识
一: Python是一种编程语言 语言: 语言是一种事物与另外一种事物沟通的介质 所以说编程语言是程序员和计算机之间实现沟通的桥梁 什么是编程?: 编程就是程序员用计算机所能理解的表达方式(编程语言) ...
- java轻量级IOC框架Guice(转)
出处:http://www.cnblogs.com/whitewolf/p/4185908.html Guice是由Google大牛Bob lee开发的一款绝对轻量级的java IoC容器.其优势在于 ...
- java操作ceph之rbd基本操作
一.安装librados和librbd Ceph存储集群提供了基本的存储服务,允许Ceph在一个统一的系统中唯一地传送对象,块和文件存储. 但是,不限于使用RESTful,块或POSIX接口. 基于R ...
- SpringMVC的问题No mapping found for HTTP request with URI
做了一个屏蔽进数据库的操作: Applicaition.xml配置: <?xml version="1.0" encoding="UTF-8"?> ...
- c# MSMQ 消息队列
转 消息队列 http://www.cnblogs.com/anbylau2130/p/3469512.html