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、

相关推荐
AI小云2 分钟前
【Python与AI基础】Python编程基础:读写CSV文件
人工智能·python
酷雷曼VR全景10 分钟前
系统升级丨让VR全景制作更全面、更简单
人工智能·科技·vr·vr全景·酷雷曼
Goboy12 分钟前
Python修仙入门 - 踏入仙门的第一步
后端·python
链上日记19 分钟前
数字资产反诈指南:识别套路,守护WEEX账户安全
人工智能·安全
爱吃青菜的大力水手26 分钟前
软银收购 ABB 机器人业务的背景与 Physical AI 的关联
人工智能·机器人
长桥夜波1 小时前
【第十七周】机器学习笔记06
人工智能·笔记·机器学习
程序员爱钓鱼1 小时前
Python编程实战 · 基础入门篇 | 什么是Python
后端·python
golang学习记1 小时前
Claude Code2.0.12发布插件系统:构建可扩展的 AI 编程工作流
人工智能
程序猿小D1 小时前
【完整源码+数据集+部署教程】遥感图像道路检测分割系统源码和数据集:改进yolo11-CARAFE
python·yolo·计算机视觉·目标跟踪·数据集·yolo11·遥感图像道路检测分割系统
minhuan1 小时前
构建AI智能体:六十二、金融风控系统:基于信息熵和KL散度的异常交易检测
人工智能·信息熵·kl散度·信息论·金融风控