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、

相关推荐
! 冰封雪莲 !7 分钟前
地表水自动监测配套采样设备怎么选?Smart WQS2000 智能采样站介绍
人工智能·环保
zandy10118 分钟前
企业级BI平台选型指南:评估框架与核心能力矩阵
大数据·人工智能·矩阵
远铂9 分钟前
BuildAdmin:GEO优化与AI内容营销一体化解决方案
大数据·人工智能·geo·buildadmin
至乐活着17 分钟前
深入Python内存管理与垃圾回收:从引用计数到分代回收的实战解析
python·性能优化·内存管理·垃圾回收·引用计数
问商十三载19 分钟前
2026大模型GEO站点结构:3个层级逻辑提收录,零成本提32%抓取权重附架构表
人工智能
雪隐35 分钟前
我被 Kimi K3 榨干了 99 块,还笑出了声——一个程序员的“真香”现场
人工智能
sunneo40 分钟前
S18.4AI产品留存与召回——让用户走了还回来(系列收官)
人工智能·产品运营·产品经理·用户运营·用户体验
m0_5474866643 分钟前
《Python数据分析与挖掘》全套PPT课件
python·数据挖掘·数据分析
㱘郳1 小时前
飞机大战Pygame存档
python·pygame
love530love1 小时前
ComfyUI 插件发布 GitHub Release + Comfy Registry (官方节点商店)完整复盘教程(从零开始)
人工智能·windows·github·devops