深度学习模型可视化1

深度学习模型的可视化1

一、可视化特征层

我是直接加在网络中的代码段,对特征层直接取出来,进行可视化。

二、使用步骤

1.引入库

基本上是这几个库:

import matplotlib.pyplot as plt
import numpy as np
import cv2

2.加入在特征层之后

代码如下:

		#取出当前的feat
		res = []
        feature_map = feat.squeeze(0)
        feature_map = feature_map.cpu().numpy()
        feature_map_num = feature_map.shape[0]
        # row_num = np.ceil(np.sqrt(feature_map_num))
        row_num = 3
        plt.figure() #可以按照每排每列输出
        for index in range(1, 10):        # 10 取决于特征层的通道数,为row_num的平方加1
            # plt.subplot(row_num, row_num, index)
            res.append(feature_map[index - 1])
            plt.imshow(feature_map[index - 1], cmap='gray')
            plt.axis('off')                   #是否展示尺寸        

            plt.savefig(str(index) + "feat"+".png")
            cv2.imwrite(str(index) + ".png",feature_map[index - 1])
  		plt.show()
		# 整体叠加的图
		map_sum = sum(ele for ele in res)
        plt.imshow(map_sum)
        plt.savefig("sum_map.png")

      

实际效果:

深度学习模型可视化1

三.CAM通道注意力热图

对图片进行通道注意力热图的可视化

1.相关知识

相关参考

2.实际操作

可以接续第一小节直接写

		heatmap = np.maximum(res, 0)     #res存储了所有通道的特征图
        heatmap = np.mean(heatmap, axis=0)
        heatmap /= np.max(heatmap)

        img = cv2.imread('test.jpg')     #添加图片
        heatmap = cv2.resize(heatmap, (img.shape[1], img.shape[0]))
        heatmap = np.uint8(255 * heatmap)
        heatmap = cv2.applyColorMap(heatmap, cv2.COLORMAP_JET)
        heat_img = cv2.addWeighted(img, 1, heatmap, 0.5, 0)
        cv2.imwrite('out.jpg', heat_img)  #输出图片

3.效果图

深度学习模型可视化1

上一篇:热力图之heatmap


下一篇:轻量级姿态估计技巧总结(2021.11.17更新) 收藏