Pytorch 缓解过拟合和网络退化

一 添加BN模块

BN模块应该添加 激活层前面

在模型实例化后,我们需要对BN层进行初始化。PyTorch中的BN层是通过nn.BatchNorm1d或nn.BatchNorm2d类来实现的。

bn = nn.BatchNorm1d(20) #

对于1D输入数据,使用nn.BatchNorm1d;对于2D输入数据,使用nn.BatchNorm2d

在模型的前向传播过程中,我们需要将BN层应用到适当的位置。以全连接层为例,我们需要在全连接层的输出之后调用BN层。

python 复制代码
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.fc1 = nn.Linear(10, 20)
        self.bn = nn.BatchNorm1d(20)
        self.fc2 = nn.Linear(20, 30)
        self.fc3 = nn.Linear(30, 2)

    def forward(self, x):
        x = self.fc1(x)
        x = self.bn(x)
        x = self.fc2(x)
        x = self.fc3(x)
        return x

二 添加残差连接

最主要的是需要注意输入参数的维度是否一致

python 复制代码
import torch
import torch.nn as nn

class ResidualBlock(nn.Module):
    def __init__(self, input_size, hidden_size):
        super(ResidualBlock, self).__init__()
        self.fc1 = nn.Linear(input_size, hidden_size)
        self.fc2 = nn.Linear(hidden_size, input_size)
        self.relu = nn.ReLU()
        
    def forward(self, x):
        residual = x
        out = self.fc1(x)
        out = self.relu(out)
        out = self.fc2(out)
        out += residual
        out = self.relu(out)
        return out
-----------------------------------
©著作权归作者所有:来自51CTO博客作者mob649e8166c3a5的原创作品,请联系作者获取转载授权,否则将追究法律责任
pytorch 全链接层设置残差模块
https://blog.51cto.com/u_16175510/6892589

1、Pytorch搭建残差网络

2、

相关推荐
sunneo18 小时前
00-系列开篇-AI-Agent的行为密码
人工智能·产品运营·aigc·产品经理·ai-native
AI品信智慧数智人18 小时前
[特殊字符]AI 数智人全场景实时解决方案|山东品信智慧科技,开启人机交互新纪元✨
人工智能·科技·人机交互
sunneo18 小时前
01-当AI-Agent学会制造信息缺口
人工智能·产品运营·aigc·产品经理·ai-native
Python私教18 小时前
HTML还是Markdown:AI时代文档格式的正确选择
人工智能
拓朗工控18 小时前
拓朗工控MXM GPU工控机:赋能制造、交通与边缘AI的算力新引擎
人工智能·制造·mxm工控机
三寸33718 小时前
又搞事情,OpenAI 开始关闭微调服务!
人工智能·ai·chatgpt·ai编程
慧一居士18 小时前
通义灵码、Qoder‌ 、OpenCode、Meoo(秒悟) 几款AI产品功能对比,适用场景和对象全面对比及选型指南
人工智能
l1t18 小时前
DeepSeek总结的DwarfStar 4:专为 DeepSeek V4 Flash 设计的小型原生推理引擎
人工智能
深圳市快瞳科技有限公司18 小时前
低功耗设计:如何让AI宠物摄像头实现长达数月的续航?
人工智能
次元工程师!18 小时前
LangFlow开发(一)—安装和部署
git·python·大模型·langflow