该技能收录 PyTorch 惯用模式与最佳实践,用于编写稳健、高效、可复现的深度学习应用。
用途与激活时机:编写新的 PyTorch 模型或训练脚本、审查深度学习代码、调试训练循环或数据管道、优化 GPU 显存或训练速度、搭建可复现实验。
核心原则:设备无关代码,使用 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") 并统一 .to(device),避免硬编码 .cuda();可复现性优先,通过 set_seed 设置 torch.manual_seed、torch.cuda.manual_seed_all、numpy 与 random 种子,并设置 cudnn.deterministic=True、benchmark=False;显式形状管理,在 forward 中注释并校验张量形状。
主要能力:模型架构方面,推荐清晰的 nn.Module 结构(分离 features/classifier)与显式权重初始化(Kaiming 初始化、apply 遍历);训练循环方面,训练前调用 model.train(),使用 optimizer.zero_grad(set_to_none=True)、梯度裁剪、AMP 混合精度与 GradScaler;验证时用 @torch.no_grad() 并调用 model.eval()。数据管道方面,提供自定义 Dataset、优化 DataLoader 配置(num_workers、pin_memory、persistent_workers、drop_last)以及处理变长序列的 collate_fn。检查点方面,保存包含 epoch、model_state_dict、optimizer_state_dict、loss 的完整检查点,加载时使用 map_location="cpu" 与 weights_only=True。性能方面,涉及 AMP、梯度检查点 checkpoint(..., use_reentrant=False)、torch.compile(mode="reduce-overhead" 等)。
限制:资料未提供具体平台、收费、价格与效果数据;使用需具备相应 PyTorch 环境(torch.compile 需 2.0+),实际加速与显存收益依硬件与模型而定。