[笔记]|[Deconv]|[CNN]可视化CNN隐藏层特征—AI学习笔记(1)

AI学习笔记(1)—可视化CNN隐藏层特征

首先这篇笔记是在有限时间的背景下完成的,并且本人对于CNN的了解尚浅,仅作为自己后续查阅的笔记


DeconvNet 能做什么:

  • 浅层:直观了解理解深度神经网络到底在做什么(what we should do)(用于解释CNN)
  • 深层:应用于网络安全;智能驾驶;(透明度?)

CNN的理解

(只要拥有图像特征(矩阵特征?)就能识别)

  1. 选取特征矩阵对原图扫描进行卷积计算(数据量十分大 解决:池化)

</

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例代码,展示了如何在CNN的pooling后加入SENet模块,并通过conv与deconv特征融合: ```python import torch.nn as nn class SENet(nn.Module): def __init__(self, in_channels, reduction=16): super(SENet, self).__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.fc1 = nn.Conv2d(in_channels, in_channels // reduction, kernel_size=1, bias=False) self.relu = nn.ReLU(inplace=True) self.fc2 = nn.Conv2d(in_channels // reduction, in_channels, kernel_size=1, bias=False) self.sigmoid = nn.Sigmoid() def forward(self, x): out = self.avg_pool(x) out = self.fc1(out) out = self.relu(out) out = self.fc2(out) out = self.sigmoid(out) return x * out class MyModel(nn.Module): def __init__(self): super(MyModel, self).__init__() # Define your CNN layers here self.pool = nn.MaxPool2d(kernel_size=2, stride=2) # Add SENet module self.senet = SENet(in_channels=64) # Define your conv and deconv layers here self.conv = nn.Conv2d(64, 64, kernel_size=3, stride=1, padding=1) self.deconv = nn.ConvTranspose2d(64, 64, kernel_size=2, stride=2) def forward(self, x): x = self.pool(x) x = self.senet(x) x = self.conv(x) x = self.deconv(x) return x ``` 在这个示例代码中,我们首先定义了一个SENet类,它接受输入信道数和降维因子作为参数。在forward方法中,我们将输入数据进行平均池化,然后通过两个卷积进行特征压缩和特征扩张,并使用Sigmoid函数对特征图进行缩放,最后将原始特征图和缩放后的特征图相乘。这个SENet模块可以插入到CNN的任意后面,以增强CNN特征表示能力。 在MyModel中,我们首先定义了CNN的一些,然后在pooling后面加入了SENet模块。最后我们定义了conv和deconv,以实现特征融合。在forward方法中,我们首先进行pooling操作,然后通过SENet模块进行特征缩放,然后进行conv和deconv操作,最终输出特征融合后的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值