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

深度学习篇---模型权重变化与维度分析


文章目录

  • 前言
  • 1. 权重的作用
  • 2. 权重的维度
    • 全连接层
    • 卷积层
  • 3. 权重的变化
  • 4.实例代码(PyTorch 框架)
    • 场景
    • 代码解释
      • 模型定义
      • 数据生成
      • 优化设置
      • 初始权重
      • 设置训练循环
      • 前向传播
      • 反向传播
      • 更新权重
      • 结果输出
    • 维度与变化总结
      • 维度匹配
      • 梯度跟新
  • 5. 增加网络深度:多层感知机(MLP)
    • 代码解释
  • 6. 权重初始化的影响
    • 核心概念
  • 7. 正则化:限制权重的自由度
  • 8. 梯度问题与解决方案
  • 9. 可视化权重变化
    • 结果分析
  • 10.总结:深度带来的挑战与解决策略
  • 11. 卷积层的权重维度与计算
    • 核心概念
      • 卷积核
      • 输入通道
      • 输出通道
      • 权重维度公式
      • 输入输出尺寸公式
  • 12. 实例代码:CNN模型构建与维度分析
    • 维度传递解析
      • 输入数据
      • 卷积层1
      • 卷积层2
      • 全连接层
  • 13. 卷积核权重的动态变化
    • 可视化卷积核(代码示例)
    • 结果分析
      • 初始卷积核
      • 训练后卷积核
  • 14. 池化层的作用
    • 下采样
    • 维度变化
  • 15. CNN的权重更新与正则化
    • 优化器设置(含L2正则化)
    • 反向传播流程
      • 计算损失
      • 反向传播速度
      • 更新权重
  • 16. CNN与全连接层的对比
  • 17.总结:CNN权重的核心特点
      • 维度动态变化
      • 权重共享与局部感知
      • 训练动态性


前言

通过增加网络深度和引入高级技术,模型可以解决更复杂的问题(如图像分类、自然语言处理)。理解权重的动态变化和维度传递,是设计高效神经网络的关键。本文简单介绍了神经网络模型权重变化与维度分析的相关知识。


1. 权重的作用

在深度学习中,权重(Weight) 是神经网络的核心参数。每个神经元通过权重对输入数据进行加权求和,再经过激活函数输出结果。训练模型时,通过调整权重使得预测结果接近真实值,这一过程称为“学习”。

2. 权重的维度

权重的维度由网络层的结构决定:

全连接层

全连接层:若输入特征数为 m,输出特征数为 n,权重维度为 (n, m)。

卷积层

卷积层:若使用 k 个大小为 3x3 的卷积核,输入通道为 c,则权重维度为 (k, c, 3, 3)(PyTorch 格式)。

3. 权重的变化

通过反向传播计算损失函数的梯度,优化器(如 SGD)按学习率调整权重

新权重 = 旧权重 - 学习率 × 梯度

4.实例代码(PyTorch 框架)

场景

场景:线性回归模型(y = 2x + 1 + 噪声)

python
import torch
import torch.nn as nn
import torch.optim as optim# 1. 定义模型
class LinearModel(nn.Module):def __init__(self):super().__init__()self.linear = nn.Linear(1, 1)  # 输入1维,输出1维def forward(self, x):return self.linear(x)model = LinearModel()# 2. 生成数据
x_train = torch.rand(100, 1) * 10          # 100个输入样本
y_train = 2 * x_train + 1 + torch.randn(x_train.shape)  # 真实值 + 噪声# 3. 设置损失函数和优化器
criterion = nn.MSELoss()                   # 均方误差损失
optimizer = optim.SGD(model.parameters(), lr=0.01)  # 学习率0.01# 4. 打印初始权重
print("初始权重:", model.linear.weight.data.item())
print("初始偏置:", model.linear.bias.data.item())# 5. 训练模型
epochs = 100
for epoch in range(epochs):# 前向传播outputs = model(x_train)loss = criterion(outputs, y_train)# 反向传播optimizer.zero_grad()  # 清空梯度loss.backward()        # 计算梯度optimizer.step()       # 更新权重# 每20次打印损失if (epoch+1) % 20 == 0:print(f'Epoch [{epoch+1}/{epochs}], Loss: {loss.item():.4f}')

相关文章:

  • 算法训练营第五天 | 454.四数相加II\ 383. 赎金信\15. 三数之和\ 18. 四数之和
  • Qemu-STM32(十七):STM32F103加入AFIO控制器
  • 9.idea中创建springboot项目_jdk1.8
  • AimRT 从零到一:官方示例精讲 —— 五、Parameter示例.md
  • 动态图表 -- eg1
  • [MySQL数据库] InnoDB存储引擎(四): InnoDB磁盘文件
  • 通用人工智能(AGI)的技术演进
  • 【AI学习】李宏毅新课《DeepSeek-R1 这类大语言模型是如何进行「深度思考」(Reasoning)的?》的部分纪要
  • java练习4
  • Tauri(2.5.1)+Leptos(0.7.8)开发桌面应用---后台调用Python Matplotlib绘制图形
  • 西游记2:天花乱坠,地涌金莲;说一会道,讲一会禅,三家(指儒、释、道)配合本如然;长生不老之术、七十二般变化之能以及筋斗云之法;你从何处而来,便回到何处去吧
  • 下载站遭遇大量DDoS攻击?全面防御与实战解决方案
  • JavaScript进阶(三十一): === 与 == 比较运算符
  • P1903 [国家集训队] 数颜色 / 维护队列 Solution
  • 【趣谈】Cyber、Web、Network都是网络有什么区别
  • WinSW注册服务
  • Windows环境下用pyinstaller将python脚本编译为exe文件
  • 使用pip3安装软件包报错`externally-managed-environment`的几种解决方式
  • Java SE(5)——数组
  • Cesium添加WMS,WMTS,地形图图,3D Tiles数据
  • 中国海警位中国黄岩岛领海及周边区域执法巡查
  • 制定出台民营经济促进法有何重大意义?全国人大常委会法工委回应
  • “80后”蒋美华任辽宁阜新市副市长
  • 迎接八方来客:全国多地“五一”假期党政机关大院停车场免费开放
  • 许峰已任江苏省南京市副市长
  • 海量数据处于“原矿”状态,数据价值释放如何破局?