卷积神经网络的特征图可视化
原图:
Keras代码:
from keras.models import Sequential
from keras.layers.convolutional import Convolution2D,MaxPooling2D,AveragePooling2D
from keras.layers import Activation
import cv2
import os
import shutil
import numpy as np
import matplotlib.pyplot as plt#网络模型
def create_model():model = Sequential()#输入 img.shape = (28,28,3)#第一层卷积model.add(Convolution2D(9,(5,5),padding='same',strides=(1,1),input_shape=img.shape)) #(1, 24, 24, 9)model.add(Activation('relu'))model.add(MaxPooling2D(pool_size=(2,2)))# # 第二层卷积# model.add(Convolution2D(9,(5,5),padding='same',strides=(2,2)))# model.add(Activation('relu'))# model.add(MaxPooling2D(pool_size=(2,2)))return model#保存特征图
def save_conv_img(conv_img):feature_maps = np.squeeze(conv_img,axis=0)img_num = feature_maps.shape[2]all_feature_maps = []for i in range(0,img_num):single_feature_map = feature_maps[:,:,i]all_feature_maps.append(single_feature_map)plt.imshow(single_feature_map)plt.savefig('./feature_map/'+'feature_{}'.format(i))sum_feature_map = sum(feature_map for feature_map in all_feature_maps)plt.imshow(sum_feature_map)plt.savefig("./feature_map/feature_map_sum.png")def create_dir():if not os.path.exists('./feature_map'):os.mkdir('./feature_map')else:shutil.rmtree('./feature_map')os.mkdir('./feature_map')if __name__ =='__main__':img = cv2.imread('b0.jpg')print(img.shape)create_dir()model = create_model()img_batch = np.expand_dims(img,axis=0)conv_img = model.predict(img_batch) #predict()的参数是需要四维的save_conv_img(conv_img)
经过第一层卷积后,得到的特征图为:
因为第一层卷积设置了一共有9个卷积核,所以对应就会有9张特征图
而网络的输出则是9张特征图合在一起,形成总的特征图:
卷积神经网络的特征图可视化相关推荐
- 卷积神经网络推理特征图可视化查看,附录imagenet类别和编号对应查询表。通过观察法进行深度学习可解释研究
CNN模型虽然在图像处理上表现出非常良好的性能和准确性,但一直以来都被认为是一个黑盒模型,人们无法了解里面的工作机制. 针对这个问题,研究人员除了从理论层面去寻找解释外,也提出了一些可视化的方法直观地 ...
- 卷积神经网络及其特征图可视化
参考链接:https://www.jianshu.com/p/362b637e2242 参考链接:https://blog.csdn.net/dcrmg/article/details/8125549 ...
- 卷积神经网络中特征图大小计算公式总结
W:输入特征图的宽,H:输入特征图的高 K:kernel size卷积核宽和高,P:padding(特征图需要填充的0的个数),S:stride步长 width_out:卷积后输出特征图的宽,heig ...
- 神经网络之特征图可视化
目录 1 前言 2 coding 2.1 加载数据及模型 2.2 微调及训练 2.3 可视化特征图 3 总结 附录 1 前言 使用torch实现. 使用cifar10数据集 代码中,有一点点迁移学习的 ...
- 神经网络中特征图可视化
keras版本的神经网络可视化每层特征图:参考 pytorch版本的神经网络可视化每层特征图:参考
- yolov5特征图可视化
文章目录 前言 一.效果图 二.使用步骤 1.使用方法 2.注意事项 总结 参考 前言 最近写论文需要观察中间特征层的特征图,使用的是yolov5的代码仓库,但是苦于找不到很好的轮子,于是参考了很多, ...
- caffe之特征图可视化及特征提取
上一篇博客,介绍了怎么对训练好的model的各层权重可视化,这篇博客,我们介绍测试图片输入网络后产生的特征图的可视化 记得上篇中,我们是写了一个新的文件test.cpp,然后编译运行那个文件的,这是因 ...
- 卷积神经网络特征图可视化及其意义
文章目录 特征图可视化方法 1. tensor->numpy->plt.save 2. register_forward_pre_hook函数实现特征图获取 3. 反卷积可视化 特征图可视 ...
- 卷积神经网络特征图可视化(自定义网络和VGG网络)
借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么. 自定义网络特征可视化 代码: # coding: utf-8from keras.mo ...
最新文章
- .NET新手系列(六)
- 百度地图-省市县联动加载地图
- 数学图形(2.10)一种绕在球上的线圈
- delphi7下调用微软的Web Services的心得
- 动态语言和静态语言的比较
- Git 使用遇到的各种问题
- splitpane如何设置竖条的宽度_页面中有间隔的方格布局如何完美实现?
- jzoj3919-志愿者【换根法,线段树,树形dp】
- 魔力宝贝 服务器状态,魔力宝贝服务端standenemy的参数
- 怎样查看电脑系统版本_用什么软件查维修记录 思域HATCHBACK怎样查询维保记录_汽车事故车查询...
- Ubuntu18.04创建新的系统用户
- WCF服务编程 学习笔记(1)
- 张宇基础30讲 第17讲-元函数积分学基础知识
- [A3C]:Tensorflow代码实现详解
- JavaScript-标签语句
- 安装失败:user ‘system‘ has previously initiated an install for product‘‘
- “人工智能”初创公司所面临的问题
- 冷门又实用的Excel技巧知识,还不来看看嘛
- html如何给header添加token,将Token添加到请求头Header中
- 维基解密:攻击 Mac/Linux 的CIA三款工具