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

体育网站建设需求陕西今日头条新闻

体育网站建设需求,陕西今日头条新闻,如何做更改网站的图片,三 网站建设对其他的层有了一些了解代码实现了Linear layerNormalization Layers 正则化层📌 什么是 Normalization Layers?Normalization Layers 是一种 正则化手段,用于 加速神经网络训练、提高模型稳定性。它们的核心作用是——👉 把输入特…

对其他的层有了一些了解

代码实现了Linear layer

Normalization Layers 正则化层

📌 什么是 Normalization Layers?

Normalization Layers 是一种 正则化手段,用于 加速神经网络训练提高模型稳定性。它们的核心作用是——

👉 把输入特征分布“标准化”,让不同批次的数据分布更一致,训练更高效,收敛更快。

常见的归一化层包括:

名称应用场景特点
BatchNorm图像分类、CNN对每个 batch 的特征维度做归一化
LayerNormNLP、Transformer对单个样本的全部特征归一化
InstanceNorm风格迁移对每个样本、每个通道单独归一化
GroupNorm小批量训练按组归一化,解决小 batch 不稳定问题
RMSNormTransformer 改进版只标准化均方根值,不用均值
WeightNorm特殊情况对权重进行归一化,而不是特征


🎁 它们有啥用?

✅ 作用💡 解释
加速收敛减少特征分布的漂移(Internal Covariate Shift),模型训练更快
防止梯度爆炸/消失保证特征分布稳定,梯度不容易失控
提高泛化能力起到轻微正则化作用,减少过拟合风险
减少超参数敏感性对学习率、初始化不那么敏感,训练更稳定


🎨 举个经典例子:BatchNorm 原理

公式:

\hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} 

 y = \gamma \hat{x} + \beta

  • \mu, \sigma^2:当前 batch 的均值和方差

  • \gamma, \beta:可训练的缩放和平移参数

  • \epsilon:防止除零的小值

💡 简化理解

  • 标准化 → 分布变“正常”

  • 拉伸平移 → 不限制模型能力


🎯 总结

  • 什么时候用?

    • CNN、Transformer、RNN、GAN 都有用;

    • batch size 小就选 LayerNormGroupNorm

    • 想快点收敛,首选 BatchNorm

  • 本质作用?

    • 加速训练 + 提升稳定性 + 抗过拟合

 recurrent layers 循环层

🧠 什么是 Recurrent Layers?

Recurrent Layers 是一种 循环神经网络(RNN) 的核心组件,专门用来处理有 时间关系序列特征 的数据。

普通的全连接(Linear)或者卷积(Conv)层是 一次性吃掉所有输入
循环层不一样,它是一口一口慢慢吃,有“记忆”,能把之前的信息记下来,影响后面的输出。


🔥 常见 Recurrent Layers 一览

名称简单理解特点
RNN最基础的循环层容易梯度爆炸/消失
LSTM加了“记忆门控”的RNN能长期记忆,效果更稳
GRU精简版 LSTM参数更少,速度更快
BiRNN / BiLSTM双向RNN结合前后信息
Attention(不严格属于RNN)可看做升级版现在流行,逐渐替代传统RNN


🏷️ 工作流程(以 LSTM 为例)

假设一个序列 [x1,x2,...,xT][x_1, x_2, ..., x_T][x1​,x2​,...,xT​]:

每个时间步:

Input x_t + Hidden state h_{t-1} => 计算门控 => 输出 h_t, c_t

  • h_t:隐藏状态(短期记忆)

  • c_t:单元状态(长期记忆)

  • 门控机制(输入门、遗忘门、输出门)动态决定信息“记住 or 忘记”。


🎁 Recurrent Layers 有啥用?

✅ 作用💡 说明
处理序列数据时间、文本、音频等按顺序分析
有“记忆”能力能记住前面发生的事情
捕捉长期依赖特别是 LSTM/GRU
文本生成/翻译Seq2Seq、Chatbot 等常见应用
时间序列预测股票预测、温度预测等


📌 PyTorch 示例:

import torch from torch

import nn

rnn = nn.LSTM(input_size=10, hidden_size=20, num_layers=2, batch_first=True) input = torch.randn(32, 5, 10) # batch_size=32, sequence_length=5, input_size=10 output, (h_n, c_n) = rnn(input)

print(output.shape) # (32, 5, 20)

解释:

  • batch_size=32:一次性处理32个样本

  • sequence_length=5:每个样本有5个时间步

  • input_size=10:每个时间步特征维度是10

  • hidden_size=20:隐藏层大小20

🎯 一句话总结:

Recurrent Layers 是序列大师,LSTM/GRU是实用级选手;长记忆短记忆一个不落,现在深度学习搞序列,基本离不开它们。📈

 

Transformer Layers 

🚀 什么是 Transformer Layers?

Transformer 层 = 不用循环、不用卷积,全靠 Attention 搞定序列建模的架构。

最早是 2017 年《Attention is All You Need》 提出的,直接颠覆了传统 RNN/LSTM 的处理方式,成为 BERT、GPT、ViT、ChatGPT 背后的核心组件。


🏷️ Transformer 层的经典组成

每个 Transformer Layer 其实是:

输入 Embedding →

[LayerNorm + Multi-Head Attention + Residual] →

[LayerNorm + Feed Forward Network + Residual] →

输出

分模块拆开看:

模块功能用途
Multi-Head Self-Attention看“全局信息”比 RNN 更强,能直接看到序列任意位置
Feed Forward Network (FFN)非线性映射提高表达能力
Layer Normalization稳定训练不容易梯度爆炸/消失
Residual Connection残差连接防止深层网络退化
Position Encoding位置感知因为没有循环,靠加 Positional Embedding 懂顺序

🎁 Transformer 的核心优势

✅ 优势📌 解释
并行计算不像 RNN 一步步算,Transformer 一次吞下整段序列
远程依赖捕捉Attention 能看全局关系,不怕长依赖问题
训练效率高GPU/TPU 很吃这一套,训练速度爆炸快
泛化性强NLP → CV → Audio → 多模态全能打

🎨 Transformer Layer 结构图(文字版)

输入 → 加位置编码 →

[MHA] → Add & Norm →

[FFN] → Add & Norm →

输出

  • MHA:Multi-Head Attention

  • FFN:Feed Forward Network

  • Add & Norm:残差连接 + LayerNorm


🧱 PyTorch Transformer 层示例

import torch

from torch import nn

# 单个 Transformer 层

transformer_layer = nn.TransformerEncoderLayer(

d_model=512,

nhead=8,

dim_feedforward=2048

)

x = torch.randn(10, 32, 512) # [sequence_length, batch_size, embedding_dim] output = transformer_layer(x)

print(output.shape) # torch.Size([10, 32, 512])

💡 d_model=512:输入特征维度
💡 nhead=8:多头注意力头数
💡 dim_feedforward=2048:前馈层宽度


🎯 Transformer Layer 怎么用:

场景用法
NLP文本分类、机器翻译、对话生成(BERT、GPT、ChatGPT)
CV图像分类(ViT)、目标检测(DETR)
音频语音识别、音频分类
多模态文本-图片理解(CLIP)、视频理解

🌟 总结:

Transformer Layers = Attention 驱动的超级表达模型,能理解 全局依赖关系,并且训练速度快,效果炸裂。现代深度学习主力选手。

 Linear Layer(线性层,全连接层)

🧱 什么是 Linear Layer?

简单来说:

output = X \cdot W^T + b

也叫 全连接层(Fully Connected Layer, FC Layer)

  • 把输入特征乘一个 权重矩阵 W,加上一个 偏置 b,得到输出。

它的本质:

线性变换,把一个维度的特征“映射”到另一个维度。


📌 PyTorch 实际代码:

import torch

from torch import nn

linear = nn.Linear(in_features=10, out_features=5) # 输入10维,输出5维

x = torch.randn(3, 10) # batch_size=3,特征10维 output = linear(x) print(output.shape) # [3, 5]

💡 解释:

  • 输入 shape = (3, 10)

  • 输出 shape = (3, 5)

  • linear.weight.shape = (5, 10)linear.bias.shape = (5,)


🎁 Linear Layer 有啥用?

✅ 作用💡 说明
特征投影把高维特征降维,或者低维升维
分类决策层最后一层通常是 Linear 层接 Softmax
输入特征融合融合不同特征的加权信息
Transformer FFN 核心Transformer 里 FeedForward 全靠它
万能适配层任意维度变换,随用随调

🎨 常见场景

场景使用方式
图像分类Conv → Flatten → Linear → 输出分类
TransformerMHA → Linear → 输出维度不变
强化学习状态 → Linear → 动作概率或值函数
回归任务Linear → 直接输出连续值

🔥 一句话总结

Linear Layer = 最简单、最高频率使用的“特征映射”工具,深度学习的打工人,不起眼但必不可少。

 nn.Sequential 相当于一个容器,这样更方便阅读

import torch
from torch import nn
from torch.nn import Conv2d
from torch.utils.tensorboard import SummaryWriterclass Tudui(nn.Module):def __init__(self):super().__init__()self.conv1 = nn.Conv2d(in_channels=3, out_channels=32, kernel_size=5, padding=2)self.maxpool1 = nn.MaxPool2d(kernel_size=2)self.conv2 = nn.Conv2d(in_channels=32, out_channels=32, kernel_size=5, padding=2)self.maxpool2 = nn.MaxPool2d(kernel_size=2)self.conv3 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2)self.maxpool3 = nn.MaxPool2d(kernel_size=2)self.flatten = nn.Flatten()self.linear1 = nn.Linear(in_features=1024, out_features=64)self.linear2 = nn.Linear(in_features=64, out_features=10)self.model1 = nn.Sequential(Conv2d(in_channels=3, out_channels=32, kernel_size=5, padding=2),nn.MaxPool2d(kernel_size=2),nn.Conv2d(in_channels=32, out_channels=32, kernel_size=5, padding=2),nn.MaxPool2d(kernel_size=2),nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2),nn.MaxPool2d(kernel_size=2),nn.Flatten(),nn.Linear(in_features=1024, out_features=64),nn.Linear(in_features=64, out_features=10))def forward(self, x):# x = self.conv1(x)# x = self.maxpool1(x)# x = self.conv2(x)# x = self.maxpool2(x)# x = self.conv3(x)# x = self.maxpool3(x)# x = self.flatten(x)# x = self.linear1(x)# x = self.linear2(x)x = self.model1(x)return xtudui = Tudui()writer = SummaryWriter("./logs_seq")
input  = torch.ones(64, 3, 32, 32)
output = tudui(input)
print(output.shape)
writer.add_graph(tudui, input)
writer.close()

http://www.dtcms.com/wzjs/332755.html

相关文章:

  • 做高端网站的公司百度小说搜索风云榜排名
  • 玉树电子商务网站建设多少钱百搜科技
  • 淘宝店铺转让平台哪个靠谱太原百度快速优化
  • 西咸新区规划建设局网站搜狐视频
  • 简速做网站工作室seo网站技术培训
  • 哪些网站可以做养殖的广告医疗网站优化公司
  • 自己动手做衣服网站软文推广例子
  • 服装花型图案设计网站sem培训学校
  • 全国 做网站的企业sem分析是什么意思
  • 宣传册设计与制作公司网站关键词优化wang
  • 福州医院网站建设公司惠州seo按天计费
  • 如何做网站维护360网站安全检测
  • 做sorry动图的网站顾问
  • 医院网站建设进度及实施过程网店代运营一年的费用是多少
  • 网站首页 如何设置处理事件seo软件
  • 织梦怎么做门户网站软文模板app
  • 怎么使用运行 打开wordpress适合seo的网站
  • 做直销哪个网站好淘宝引流推广平台
  • 杭州cms模板建站日照高端网站建设
  • 中国建设部网站办事大厅单页站好做seo吗
  • 瓯北网站制作报价专业做seo推广
  • 网站菜单分类怎么做百度seo查询收录查询
  • 湖北seo优化诊断厦门网站seo外包
  • 百度资源站长平台湖南网站建设平台
  • 那些网站可以做条形码万网域名查询接口
  • 西安做网站多钱刷赞网站推广永久
  • 做实验用哪些国外网站百度链接提交工具
  • 做html网站搜索框教程百度号码认证平台取消标记
  • 那些论坛网站做的比较好班级优化大师官方免费下载
  • 求大神帮忙做网站网络营销推广方法和手段