当前位置: 首页 > 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}')
http://www.xdnf.cn/news/211879.html

相关文章:

  • 阿里云 OpenManus 实战:高效AI协作体系
  • “情况说明“以后,Unity XR 开发者如何选择?
  • HTTP(超文本传输协议)全面总结
  • 蓝桥杯 10. 凯撒加密
  • [C]基础14.字符函数和字符串函数
  • 网络原理—应用层和数据链路层
  • 指针(5)
  • Spring Boot 集成 ActiveMQ 实现异步消息通信(一)
  • 跨平台项目部署全攻略:Windows后端+Mac前端在服务器的协同实战
  • Arduion 第一天,变量的详细解析
  • 三格电子——四路CAN转4G网关使用中的常见问题
  • 【深度学习新浪潮】ISP芯片算法技术简介及关键技术分析
  • 深度解析 MyBatis`@TableField(typeHandler = JacksonTypeHandler.class)`:优雅处理复杂数据存储
  • 深入理解二分查找
  • AI防摔倒检测系统
  • 实验七:基于89C51和DS18B20的温度采集与显示
  • 【从滚动条缺失到布局体系:前端布局问题的系统性思考】
  • pytorch 一些常用语法
  • 图漾官网Sample_V1版本C++语言完整参考例子---单相机版本
  • 企业办公协同平台安全一体化生态入住技术架构与接口标准分析报告
  • ubnuntu使用conda进行虚拟环境迁移,复制,克隆
  • Dify 使用模版转换实现更丰富的输入格式支持
  • linux FTP服务器搭建
  • 通信协议——SPI通信协议
  • Go语言中的错误处理
  • CSS:编写位置分类
  • PDF编辑器:Foxit PDF Editor Pro 版功能解析
  • JVM对象存储格式
  • 解决调用Claude 3.7接口 403 Request not allowed问题
  • 贝叶斯优化RF预测模型