当前位置: 首页 > wzjs >正文

成品网站源码在线百度新版本更新下载

成品网站源码在线,百度新版本更新下载,哈尔滨建设网站门户,天津网站建设工作室PyTorch模型训练相关要素 全连接神经⽹络模型结构补全激活函数归一化正则化模型结构和⽅法在这里插入图片描述优化器 Optimizer带动量的随机梯度下降 神经⽹络输出层与模型任务回归任务相关损失函数 分类任务相关损失函数交叉熵 ) 全连接神经⽹络模型结构补全 激活函数 Sigm…

PyTorch模型训练相关要素

  • 全连接神经⽹络模型结构补全
    • 激活函数
    • 归一化
    • 正则化
    • 模型结构和⽅法
    • 在这里插入图片描述
    • 优化器 Optimizer
      • 带动量的随机梯度下降
    • 神经⽹络输出层与模型任务
      • 回归任务相关损失函数
    • 分类任务相关损失函数
      • 交叉熵

)

全连接神经⽹络模型结构补全

激活函数

  • Sigmoid
    提出时间:1943年(McCulloch和Pitts在⼈⼯神经元模型中⾸次使⽤)。
    特点:输出压缩在0到1之间,具有⾮线性特性,但梯度在两端趋近于零,容易导致梯度消失问题,且输出均值不为零,可能影响训练稳定性。
    应⽤⽹络模型:早期常⽤于逻辑回归、浅层神经⽹络的分类任务,以及⽣成对抗⽹络(GANs)的输出层(⽣成概率分布)。
    使⽤普遍性:在深度学习中逐渐被ReLU等替代,但在需要概率解释的任务(如⼆分类、语⾔模型)中仍有应⽤。
  • tanh
    提出时间:1940年代(作为Sigmoid的变体被提出)。
    特点:输出范围为-1到1,均值为零,⽐Sigmoid更易训练,但仍存在梯度消失问题。
    应⽤⽹络模型:常⽤于循环神经⽹络(RNN)、⻓短期记忆⽹络(LSTM)的⻔控机制,以及早期深度神经⽹络的中间层。
    使⽤普遍性:在现代模型中逐渐被ReLU取代,但在序列建模(如⾃然语⾔处理)和某些强化学习场景中仍有使⽤。
  • ReLU
    提出时间:2012年(由Hinton团队在ImageNet竞赛中推⼴)。
    特点:计算⾼效,缓解梯度消失问题,但存在“神经元死亡ˮ现象(输⼊负时梯度为零,导致权重⽆法更新)。
    应⽤⽹络模型:⼴泛⽤于卷积神经⽹络(CNN)、残差⽹络(ResNet)、循环神经⽹络(RNN)等,是深度学习的主流激活函数。
    使⽤普遍性:⽬前最常⽤的激活函数,适⽤于⼤多数视觉、语⾔和序列任务。
  • Leaky ReLU
    提出时间:2013年(由Maas等⼈提出)。
    特点:改进ReLU的“死亡ˮ问题,当输⼊为负时保留⼩梯度(如斜率0.01),保持神经元活性。
    应⽤⽹络模型:在⽣成对抗⽹络(DCGAN)、超分辨率模型中表现良好,常⽤于替代ReLU以提升训练稳定性。
    使⽤普遍性:在需要避免ReLU缺陷的场景中普遍使⽤,是ReLU的常⻅改进版本。
  • Swish
    提出时间:2017年(由Google团队提出)。
    特点:公式为 ,结合平滑性和⾃⻔控机制,⽐ReLU更灵活,适合深层⽹络。
    应⽤⽹络模型:在Google的EfficientNet、神经架构搜索(NAS)模型中被采⽤,显著提升图像分类和⽬标检测性能。
    使⽤普遍性:近年来在⼯业界和学术界的⾼性能模型中逐渐普及,尤其在需要⾼精度的视觉任务中。
    在这里插入图片描述

归一化

归⼀化也是⼀种带有参数的归⼀化计算公式。但主要⽬的是为了稳定训练过程,加速模型收敛并减少过拟合。
在这里插入图片描述

在这里插入图片描述

#定义一个简单的BatchNorm层
class SimpleNet(nn.Module):def __init__(self):super(SimpleNet,self).init()self.fc1 = nn.Linear(10,20)self.bn1 = nn.BatchNorm1d(20)self.relu = nn.ReLU()self.fc2 = nn.Liner(20,1)def forward(self,x):x = self.fc1(x)x = self.bn1(x)x = self.relu(x)x = self.fc2(x)return x# 创建模型实例
model = SimpleNet()
  • 其它归⼀化⽅法
    除 BatchNorm 外,还有以下归⼀化操作运算
    LayerNorm:适合⻓序列数据(如 NLP),或批量较⼩的任务。
    GroupNorm:平衡 BN 和 LN,适合中等批量场景。
    SwitchableNorm:⾃适应选择归⼀化⽅式,适合动态批量场景。

正则化

正则化是⼀种数据筛选⽅法,作⽤是抑制过拟合,提升模型泛化能⼒。

  • Dropout:
    Dropout 是由 Geoffrey Hinton 等⼈在 2012 年提出的⼀种正则化技术,⽤于缓解神经⽹络的过拟合问题。
  • 原理:Dropout 的核⼼思想是在训练过程中随机“关闭(ˮ 置零)神经⽹络中的部分神经元,使得⽹络⽆法过度依赖某些特定特征。具体步骤如下:
    在这里插入图片描述
  • 作⽤
    减少过拟合:通过随机失活神经元,Dropout 迫使⽹络学习更鲁棒的特征,避免对特定神经
    元的过度依赖。
    近似模型集成:每次训练时随机失活神经元相当于训练不同的⼦⽹络,测试时将这些⼦⽹络
    的预测结果平均,类似于集成学习的效果。
    计算效率⾼:Dropout 的计算成本较低,⽆需存储额外参数,且易于在现有⽹络中实现。
import torch
import torch.nn as nn
class DropoutNet(nn.Module):def __init__(self):super(DropoutNet, self).__init__()self.fc1 = nn.Linear(10, 20)self.dropout = nn.Dropout(p=0.5) # 随机失活50%的神经元self.relu = nn.ReLUself.fc2 = nn.Linear(20, 1def forward(self, x):x = self.fc1(x)x = self.dropout(x)x = self.relu(x)x = self.fc2(x)return x
model = DropoutNet()

模型结构和⽅法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

优化器 Optimizer

在 PyTorch 中,优化器(optimizer)是⽤于更新神经⽹络参数的⼯具,它会根据计算得到的损失函数的梯度来调整模型的参数,通常是以最⼩化损失函数来改进模型的性能 。

  • 梯度下降GD - Gradient Descent
    在这里插入图片描述

  • 批量梯度下降BGD - Batch Gradient Descent
    批量梯度下降法是最原始的形式,就是指在每⼀次训练迭代时使⽤所有样本来进⾏梯度的更新。参数的更新⽅式和GD⼀样。
    特点:
    理想状态下经充分训练,梯度可以达到全局最优,缺点是不适合⼤样本和⼤模型。

  • ⼩批量梯度下降(Mini-batch Gradient Descent,MBGD)
    在这里插入图片描述
    在这里插入图片描述

  • 随机梯度下降SGD - Stochastic Gradient Descent
    在这里插入图片描述
    在这里插入图片描述

  • 输⼊参数说明
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    5.参数更新:
    在这里插入图片描述

带动量的随机梯度下降

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • ⾃适应矩估计Adam - Adaptive Moment Estimation
    Adam算法,通过计算梯度的⼀阶矩和⼆阶矩估计来调整学习率,对不同参数设置⾃适应学习率。
    具体的我们可以看一下这个官方的介绍
    https://pytorch.org/docs/stable/generated/torch.optim.Adam.html

神经⽹络输出层与模型任务

神经⽹络模型的输出层,通常会根据训练任务的不同,⽽分为两种情况:单⼀节点的输出和多节点输出。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

回归任务相关损失函数

  • 均⽅误差(Mean Squared Error,MSE)
    在这里插入图片描述
  • 平均绝对误差(Mean Absolute Error,MAE)
    在这里插入图片描述
  • Huber损失函数
    在这里插入图片描述

分类任务相关损失函数

交叉熵

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import numpy as np
arr = np.array([[0.5,1.5,0.1 
def softmax(x):exp = np.exp(x)sum_exp = np.sum(np.exp(x), axis=1, keepdims=True)softmax = exp / sum_expreturn softmax
print(softmax(arr))
import torch
tensor = torch.tensor([[0.5,1.5,0.1 
print(tensor.softmax(1).numpy())

2.计算交叉熵
在这里插入图片描述

tensor = torch.tensor([[0.5,1.5,0.1 
print(tensor.log_softmax(dim=1.numpy())
# 或m = nn.LogSoftmax(dim=1print(m(tensor).numpy())
http://www.dtcms.com/wzjs/73058.html

相关文章:

  • 南昌网站设计哪家专业好广告词
  • 新手怎么做淘宝店铺汕头seo代理商
  • 如何办网站北京百度推广代理公司
  • 专业做校园文化的网站seo建站技巧
  • wordpress怎么登录界面太原百度网站快速优化
  • wordpress实现多重筛选5g站长工具seo综合查询
  • 重庆网站建设策划网站推广网络推广
  • 怎么做网站的用户注册直通车关键词优化
  • 专题网站开发工具有哪些无锡百度关键词优化
  • 网站服务器空间价格seo课程培训视频
  • 绍兴网站建设报价百度网页版入口
  • 建公司网站要多少钱代发百度关键词排名
  • 万州集团网站建设百度站长平台app
  • 一个人做两个博客网站深圳网络推广软件
  • 北京app软件开发论坛如何做seo
  • 做企业网站需要用到的软件seo网站有哪些
  • 海外产品网站建设seo排名优化资源
  • 做网站用centos还是ubuntu百度官网首页
  • 十里河网站建设2345网址导航智能主板
  • 泌阳专业网站建设兰州seo公司
  • 德阳公司做网站教育培训网站模板
  • wordpress建站 图片关键词点击排名软件
  • 住房和城乡建设岗位评定网站关键词排名优化报价
  • 中国的网站做欧美风十大营销策划公司排名
  • 做ftp网站怎么设置长春网站建设方案推广
  • 国内气膜馆建造商seo优化便宜
  • 沈阳网站建设制作有没有自动排名的软件
  • 手机网站发号系统源码百度资源搜索
  • 考百度指数 某个关键词在某个行业网站上的武汉服装seo整站优化方案
  • 做酒水网站陕西有哪些外链发布平台