当前位置:   article > 正文

卷积层CNN在观察什么?_如何查看卷积层对哪些区域

如何查看卷积层对哪些区域

我们通过对CNN滤波器W1进行可视化,来观察卷积层到底在观察什么?
卷积层的可视化函数如下:

#可视化函数
def filter_show(filters, nx=8, margin=3, scale=10):
    FN, C, FH, FW = filters.shape
    ny = int(np.ceil(FN / nx))

    fig = plt.figure()
    fig.subplots_adjust(left=0, right=1, bottom=0, top=1, hspace=0.05, wspace=0.05)

    for i in range(FN):
        ax = fig.add_subplot(ny, nx, i+1, xticks=[], yticks=[])
        ax.imshow(filters[i, 0], cmap=plt.cm.gray_r, interpolation='nearest')
    plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
'
运行

在网络初始化的时候可视化W1
在这里插入图片描述
滤波器图像如下所示:
在这里插入图片描述
从上图可以观察到,由于学习前的滤波器是随机进行初始化的,所以在黑白的浓淡上没有规律可循。
在训练完成后显示滤波器
在这里插入图片描述
如果我们把滤波器应用于图像,查看输出的图像:

在这里插入图片描述
就是它在观察边缘(颜色变化的分界线)和斑块(局部的块状区域)等。
由此可知,卷积层的滤波器会提取边缘或斑块等原始信息。而刚才实现的CNN会将这些原始信息传递给后面的层。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/873835
推荐阅读
相关标签
  

闽ICP备14008679号