Visualizing and Understanding Convolutional Networks论文实现

xiaoxiao2021-07-27  78

文章目录

核心代码实现运行结果

本文对预先训练好的vgg16 model, 进行了反relu、反池化、反卷积,从而可视化vgg16的卷积过程。 项目运行环境:win10 + python2.7 + cpu python库:numpy + chainer + matplotlib 关于对论文的理解可参考:https://www.cnblogs.com/hellcat/p/7149348.html

核心代码实现

# n_activation_maps: 表示feature map的数量 for i in range(n_activation_maps): # For each channel h = hs[layer_idx].copy() condition = xp.zeros_like(h) condition[0][i] = 1 # 将目前感兴趣的feature map保留下来,其他的都置为0 h = Variable(xp.where(condition, h, xp.zeros_like(h))) for i in reversed(range(layer_idx + 1)): p = self.mps[i] # 反池化 h = F.upsampling_2d(h, p.indexes, p.kh, p.sy, p.ph, unpooling_sizes[i]) for deconv in reversed(self.deconv_blocks[i]): # 反relu --> 反卷积 h = deconv(F.relu(h))

运行结果

输入图片:

输出结果: 该结果表明输入图片属于熊猫的概率为97.7%。

['n02510455' 'giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca'] probability:0.977424144745 ['n02509815' 'lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens'] probability:0.0196101851761 ['n02133161' 'American black bear, black bear, Ursus americanus, Euarctos americanus'] probability:0.000676636816934 ['n02445715' 'skunk, polecat, wood pussy'] probability:0.000416155613493 ['n02447366' 'badger'] probability:0.000290626252536

卷积过程可视化: 即在卷积过程中,都做了些什么,提取了哪些特征

conv_block1:

conv_block2:

交流学习可添加QQ:1759873286

转载请注明原文地址: https://www.6miu.com/read-4823401.html

最新回复(0)