解决RuntimeError: running_mean should contain 36864 elements not 4096

简介: 一般在卷积层Conv2d后添加正则化BNBatchNormal,使得数据在relu激活前不会因为数据过大而导致网络不稳定,而我在代码中BatchNorm2d的输入通道数与前一层Conv2d的输出通道数不一致,导致报这个错,两者修改一直即可(这里修改为36864即可)。

一、问题描述

在模型微调最后2层时,BatchNorm1d如题报错。

def get_model():
    model_pre = models.resnet50(pretrained=True) # 获取预训练模型
    # 冻结预训练模型中所有参数
    for param in model_pre.parameters():
        param.requires_grad = False
    # 替换ResNet最后的两层网络,返回一个新的模型(迁移学习)
    model_pre.avgpool = AdaptiveConcatPool2d() # 池化层替换
    model_pre.fc = nn.Sequential(
            nn.Flatten(), # 所有维度拉平
            # nn.BatchNorm1d(4096), # 正则化处理
            nn.BatchNorm1d(36864), # 正则化处理
            nn.Dropout(0.5), # 丢掉神经元
            # nn.Linear(4096, 512), # 线性层处理
            nn.Linear(36864, 512), # 线性层处理
            nn.ReLU(), # 激活函数
            nn.BatchNorm1d(512), # 正则化处理
            nn.Dropout(p=0.5), # 丢掉神经元
            nn.Linear(512, 2), # 线性层
            nn.LogSoftmax(dim=1) # 损失函数
    )
    return model_pre
torch.nn.Conv2d(in_channels, out_channels, kernel_size, 
stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')

二、解决方法

一般在卷积层Conv2d后添加正则化BNBatchNormal,使得数据在relu激活前不会因为数据过大而导致网络不稳定,而我在代码中BatchNorm2d的输入通道数与前一层Conv2d的输出通道数不一致,导致报这个错,两者修改一直即可(这里修改为36864即可)。


相关文章
|
传感器 机器学习/深度学习 自动驾驶
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
5071 1
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
|
9月前
|
编解码 异构计算
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
2170 7
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
Python
python os.listdir的替代方案os.scandir
python os.listdir的替代方案os.scandir
975 0
|
存储 算法 安全
深入了解哈希映射(HashMap)
哈希映射是现代软件开发中不可或缺的一种数据结构,它通过独特的存储和检索机制,提供了高效的数据处理能力。正确理解和使用哈希映射,能够显著提高软件性能和开发效率。不论是在日常的软件开发还是在处理大规模数据集时,哈希映射都是一个极佳的选择。
370 1
|
机器学习/深度学习 数据采集
深度学习之脑电图信号解码
基于深度学习的脑电图(EEG)信号解码是一项重要的研究领域,旨在从脑电图信号中提取有用信息,用于脑-机接口、情绪识别、疾病诊断等应用。
412 5
|
机器学习/深度学习 人工智能 监控
人工智能 - 目标检测算法详解及实战
目标检测需识别目标类别与位置,核心挑战为复杂背景下的多目标精准快速检测。算法分两步:目标提取(滑动窗口或区域提议)和分类(常用CNN)。IoU衡量预测与真实框重叠度,越接近1,检测越准。主流算法包括R-CNN系列(R-CNN, Fast R-CNN, Faster R-CNN),YOLO系列,SSD,各具特色,如Faster R-CNN高效候选区生成与检测,YOLO适用于实时应用。应用场景丰富,如自动驾驶行人车辆检测,安防监控,智能零售商品识别等。实现涉及数据准备、模型训练(示例YOLOv3)、评估(Precision, Recall, mAP)及测试。
686 5
Idea 进行远程服务器debug操作
Idea 进行远程服务器debug操作
1115 0
|
运维
ICLR 2024:跨领域准确进行零样本异常检测,浙大等提出AnomalyCLIP
【5月更文挑战第12天】 浙大、新大和哈佛研究人员合作提出AnomalyCLIP,利用预训练的视觉-语言模型CLIP,学习对象无关文本提示,实现准确的跨领域异常检测。在17个数据集上表现出色,但存在特定领域适应性和计算复杂度问题。研究表明潜力,尤其对工业和医学图像分析。[论文链接](https://arxiv.org/pdf/2310.18961.pdf)
515 1
|
算法 Java Go
玩转 Go Slices 切片泛型库
本文全面介绍了 Go slices 库的所有函数,并着重指出了使用某些函数时的注意事项,通过阅读本文,相信你将能够熟练掌握如何使用 Go Slices 库。
412 39
|
SQL HIVE
Hive表删除数据不支持使用Delete From...
Hive表删除数据不支持使用Delete From...
652 0