返回顶部
P

PyTorchPyTorch避坑指南

Avoid common PyTorch mistakes — train/eval mode, gradient leaks, device mismatches, and checkpoint gotchas.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
1,190
下载量
免费
免费
5
收藏
概述
安装方式
版本历史

PyTorch

技能名称:PyTorch
详细描述:

训练模式与评估模式


  • - model.train() 启用 Dropout 和 BatchNorm 更新——初始化后默认状态
  • model.eval() 禁用 Dropout,使用运行统计量——推理时必须调用
  • 模式具有粘性——训练/评估状态会持续,直到显式更改
  • model.eval() 不会禁用梯度——仍需使用 torch.no_grad()

梯度控制

  • - 推理时使用 torch.nograd()——减少内存占用,加速计算
  • loss.backward() 会累积梯度——在反向传播前调用 optimizer.zerograd()
  • zero_grad() 的放置位置很重要——应在前向传播前,而非反向传播后
  • 使用 .detach() 停止梯度流动——防止日志记录中的内存泄漏

设备管理

  • - 模型和数据必须在同一设备上——model.to(device) 和 tensor.to(device)
  • .cuda() 与 .to(cuda)——两者均可,.to(device) 更灵活
  • CUDA 张量不能直接转换为 numpy——需使用 .cpu().numpy()
  • torch.device(cuda if torch.cuda.is_available() else cpu)——可移植代码

数据加载器

  • - numworkers > 0 使用多进程——Windows 需要 if name == main:
  • 结合 CUDA 使用 pinmemory=True——加快向 GPU 的传输速度
  • 工作进程不共享状态——每个工作进程的随机种子不同,需在 workerinitfn 中设置
  • 过大的 num_workers 可能导致内存问题——从 2-4 开始,若 CPU 受限再增加

保存与加载

  • - torch.save(model.statedict(), path)——推荐,仅保存权重
  • 加载:先创建模型,然后 model.loadstatedict(torch.load(path))
  • 跨设备使用 maplocation——若模型在 GPU 上保存,使用 torch.load(path, map_location=cpu)
  • 保存整个模型会序列化代码路径——代码更改时会失效

原地操作

  • - 原地操作以 结尾——tensor.add(1) 与 tensor.add(1) 的区别
  • 对叶子变量进行原地操作会破坏自动求导——出现关于修改叶子变量的错误
  • 对中间变量进行原地操作可能损坏梯度——避免在计算图中使用
  • tensor.data 绕过自动求导——已过时,为安全起见优先使用 .detach()

内存管理

  • - 累积的张量会导致内存泄漏——对记录的指标使用 .detach()
  • torch.cuda.emptycache() 释放缓存内存——但不能修复泄漏
  • 删除引用并调用 gc.collect()——必要时在 emptycache 之前执行
  • with torch.no_grad(): 阻止图存储——对验证循环至关重要

常见错误

  • - 训练模式下 batchsize=1 时 BatchNorm 会失败——使用评估模式或设置 trackrunningstats=False
  • 损失函数的 reduction 默认值为 mean——梯度累积时可能需要 sum
  • crossentropy 期望输入为 logits——而非 softmax 输出
  • 使用 .item() 获取 Python 标量——.numpy() 或 [0] 已弃用/会报错

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 pytorch-1776328688 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 pytorch-1776328688 技能

通过命令行安装

skillhub install pytorch-1776328688

下载

⬇ 下载 PyTorch v1.0.0(免费)

文件大小: 2 KB | 发布时间: 2026-4-17 16:04

v1.0.0 最新 2026-4-17 16:04
Initial release

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部