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

python打卡day39@浙大疏锦行

知识点回顾

  1. 图像数据的格式:灰度和彩色数据
  2. 模型的定义
  3. 显存占用的4种地方
    1. 模型参数+梯度参数
    2. 优化器参数
    3. 数据批量所占显存
    4. 神经元输出中间状态
  4. batchisize和训练的关系

 1. 图像数据格式
- 灰度图像 :单通道,像素值范围通常0-255,形状为(H, W)或(1, H, W)
- 彩色图像 :三通道(RGB),形状为(3, H, W)或(H, W, 3)
 2. 模型定义要点
- 由多个神经网络层组成(卷积层、全连接层等)
- 每层包含可训练参数(权重和偏置)
- 需要定义前向传播(forward)逻辑
3. 显存占用的4个主要部分

a. 模型参数+梯度参数

# 以PyTorch为例,每个参数会占用:
显存 = 参数数量 × 4字节(float32)
梯度占用相同大小的显存

b. 优化器参数

# 例如Adam优化器会为每个参数保存:
- 一阶动量(m)
- 二阶动量(v)
# 显存占用 = 参数数量 × 4 × 2

c. 数据批量所占显存

显存 = batch_size × 单样本数据量 × 4字节

d. 神经元输出中间状态

# 前向传播时各层的输出需要保存
# 用于反向传播计算梯度
显存 ≈ Σ(各层输出张量大小 × batch_size × 4)

4.batchisize和训练的关系

import torch
import torch.nn as nn
from torch.utils.data import DataLoader# 1. 定义简单模型
class SimpleModel(nn.Module):def __init__(self):super().__init__()self.fc = nn.Linear(10, 2)  # 10维输入到2维输出# 2. 创建模拟数据集
data = torch.randn(1000, 10)        # 1000个样本
targets = torch.randint(0, 2, (1000,)) 
dataset = torch.utils.data.TensorDataset(data, targets)# 3. 不同batch_size的影响对比
for batch_size in [1, 32, 1024]:loader = DataLoader(dataset, batch_size=batch_size, shuffle=True)model = SimpleModel()optimizer = torch.optim.SGD(model.parameters(), lr=0.01)# 训练监控print(f"\nBatch Size: {batch_size}")for epoch in range(3):for x, y in loader:optimizer.zero_grad()output = model(x)loss = nn.CrossEntropyLoss()(output, y)loss.backward()optimizer.step()print(f"Epoch {epoch} Loss: {loss.item():.4f}", end='\r')

关键点说明:
1. batch_size=1 (随机梯度下降):
   
   - 每个样本更新一次参数
   - 损失波动剧烈(高方差)
   - 适合在线学习场景
2. batch_size=32 (常用值):
   
   - 平衡了梯度稳定性和计算效率
   - 损失曲线相对平滑
3. batch_size=1024 (大批量):
   
   - 梯度方向最稳定
   - 需要更大的学习率(可用线性缩放规则)
   - 可能需梯度累积(若显存不足)

相关文章:

  • 苹果签名应用掉签频繁原因排查以及如何避免
  • 敏捷开发中如何避免迭代失控
  • Redis 主从复制中的全量拷贝机制详解
  • ubuntu20.04编译 pjproject-2.7.1
  • 2025音频传输模块全球选购指南:高品质音频体验的品牌之选
  • 可靠数据传输原理
  • Sqlalchemy 连mssql坑
  • 【前端】Vue3 中实现两个组件的动态切换保活
  • 快速上手shell条件测试
  • 【评测】DuReader-Retrieval数据集之初体验
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.7 R语言解题
  • magic-api配置Git插件教程
  • 安装Arch Linux(实体机、干货)
  • Kubernetes 中部署 kube-state-metrics 及 Prometheus 监控配置实战
  • leetcode0954. 二倍数对数组-medium
  • CCPC shandong 2025 G
  • 双路物理CPU机器上安装Ubuntu并部署KVM以实现系统多开
  • 第二章支线一:影之殿堂 · 阴影与过渡魔法
  • 生成式人工智能:重构软件开发的范式革命与未来生态
  • 数据的类型——认识你的数据
  • 免费自助搭建网站/怎么seo关键词优化排名
  • 国家官方网站/百度权重优化软件
  • 那个网站做720度效果图/海南seo
  • 国外做的好的网站/热门职业培训班
  • 医院网站建设解决方案/百度移动端排名软件
  • 医院网站建设的特点/学历提升哪个教育机构好一些