#PyTorch
共 8 篇文章
训练越跑越占显存,running_loss += loss 会留下什么
区分日志累加、待反传损失与 retain_graph;用数值保存训练日志,并按相同步骤观察已分配显存,避免把缓存或优化器状态误判为泄漏。
Windows 的 DataLoader 一加 num_workers 就报 bootstrapping phase
num_workers=0 正常、开启多进程后失败时,检查 spawn 导入入口、main 保护及顶层 Dataset 定义;不要只压掉 worker 异常。
模型已搬到 GPU,PyTorch 仍报 CPU 和 CUDA 设备不一致
模型和输入已搬到 GPU,某些隐藏层仍留在 CPU。检查实际报错运算、子模块注册、to 的返回值及临时张量,避免优化器遗漏参数。
PyTorch 转 NumPy 报 requires grad,该在什么地方 detach
PyTorch 张量转 NumPy 报 requires grad 时,区分导出与训练损失。说明 detach、CPU 转移、共享内存及 copy,并保留训练计算图。
PyTorch 开启 FP16 混合精度后,loss 变成 NaN
按前向损失、梯度和更新阶段定位非有限值;正确使用 autocast 与 GradScaler,并说明 BF16 预训练模型和 FP16 数值范围的兼容边界。
PyTorch 调了 model.eval(),推理为什么仍占大量显存
eval 控制部分层的训练行为,no_grad 和 inference_mode 控制求导记录。说明纯推理、后续训练和输出留存的不同边界。
PyTorch 装好了,torch.cuda.is_available() 为什么还是 False
CUDA Toolkit 已安装,PyTorch 仍看不到 GPU。按实际解释器、CUDA 构建、驱动与设备可见性检查,并区分可用性检测与实际内核兼容。
升级 PyTorch 2.6 后,旧检查点报 Weights only load failed
torch.load 从 2.6 起在未指定 pickle_module 时默认受限加载。按检查点内容和可信程度选择 state_dict、精确允许列表或受控旧格式迁移。


