day 46

@浙大疏锦行

在深度学习中,注意力机制(Attention Mechanism) 是让模型学会"关注重点"的方法。正如人类 在看图时会自动聚焦于主体(如猫、车、人脸),而忽略背景,模型也希望学会同样的能力。

python 复制代码
class SimpleCNN(nn.Module):
    def __init__(self, num_classes=10):
        super(SimpleCNN, self).__init__()
        self.layer1 = nn.Sequential(
            nn.Conv2d(3, 64, 3, padding=1),
            nn.BatchNorm2d(64),
            nn.ReLU(),
            SEBlock(64)  # 加入通道注意力模块
        )
        self.layer2 = nn.Sequential(
            nn.Conv2d(64, 128, 3, padding=1),
            nn.BatchNorm2d(128),
            nn.ReLU(),
            SEBlock(128)
        )
        self.fc = nn.Linear(128, num_classes)
 
    def forward(self, x):
        out = self.layer1(x)
        out = self.layer2(out)
        out = torch.mean(out, dim=[2, 3])  # Global AvgPool
        out = self.fc(out)
        return out
 
model = SimpleCNN()
print(model)
python 复制代码
if __name__ == "__main__":
    # 1. 加载图片
    img_tensor, img = load_image()
    
    # 2. 初始化两个CNN(加SE和不加SE)
    cnn_no_se = SimpleCNN()
    cnn_with_se = CNNWithSE()
    cnn_no_se.eval()
    cnn_with_se.eval()
    
    # 3. 提取特征
    feat1_no_se, feat2_no_se = cnn_no_se(img_tensor)
    feat1_with_se, feat2_with_se = cnn_with_se(img_tensor)
    
    # 4. 可视化对比(第一层特征图)
    visualize_feat(feat1_no_se, "不加SE的第一层特征图")
    visualize_feat(feat1_with_se, "加SE的第一层特征图")
相关推荐
weixin1997010801630 分钟前
官方授权通道和灰色爬虫,做数据服务该选哪条路(附 python 源码)
c++·爬虫·python
Ryan-Zhong37 分钟前
数字人口播视频 API 实战:Python 跑通模板合成、异步轮询与批量出片
开发语言·python·音视频
quantdash_cc42 分钟前
个人开发者用 QuantDash 读取港股行情:00700.HK 的 Python 函数封装与校验实践
python·数据分析·pandas·量化交易·股票数据·quantdash
fengci.1 小时前
CTF2困难部分
开发语言·网络·python·安全·php
小小张说故事1 小时前
Python 的 0.1 + 0.2 为什么不等于 0.3?拆开 IEEE 754 与那串死循环小数
后端·python
LK_071 小时前
【Agent】工具调用的安全边界:从模型输出到程序执行
人工智能·笔记·python·agent
十二同学啊1 小时前
Python 工程化详解:项目结构、依赖管理、代码质量、测试与部署
java·开发语言·python
打工仔折腾 AI1 小时前
鸿蒙移动端直连 Windows 远程桌面配置与性能调优实践
人工智能·windows·后端·python·华为·性能优化·harmonyos
樱花落木兰1 小时前
Redis 消息队列的可靠性演进:从 List、Pub/Sub 到 Stream 消费者组,以及 8.x 版本改变了什么
java·开发语言·经验分享·redis·分布式·python·软件工程