更换RTX 3090ti后运行CTR-GCN出现NaN/Inf警告及精度骤降求助
解决方案:RTX 3090Ti运行CTR-GCN出现NaN/Inf及精度下降问题
核对CUDA与PyTorch版本适配性
RTX 3090Ti基于Ampere架构,要求CUDA 11.3及以上版本支持。若之前使用旧版CUDA(如10.x),会因架构不兼容引发数值计算异常。执行以下命令确认版本匹配度:nvcc --version python -c "import torch; print(torch.version.cuda)"若版本不匹配,卸载现有PyTorch后,重装对应CUDA版本的PyTorch包。
调整自动混合精度(AMP)设置
部分旧代码的AMP实现对Ampere架构支持不足,易触发数值溢出产生NaN/Inf。找到代码中torch.cuda.amp.GradScaler()相关逻辑,可先注释AMP代码,改用全FP32精度训练验证。若需保留AMP,可修改初始化参数:scaler = torch.cuda.amp.GradScaler(init_scale=2**16, growth_interval=0)排查输入数据的归一化与异常值
新GPU的计算精度特性可能放大数据分布问题。添加代码检查输入张量的极值:import torch print("输入张量最小值:", torch.min(input_tensor).item()) print("输入张量最大值:", torch.max(input_tensor).item())若存在极端值,重新调整数据预处理流程,比如增加数值截断步骤,或重新计算数据集的归一化统计量。
优化学习率与梯度控制
新GPU计算速度更快,原学习率可能导致步长过大引发梯度爆炸。尝试将学习率降至原数值的1/10~1/5,或更换优化器为AdamW,同时添加梯度裁剪:torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)更新CTR-GCN代码至最新版本
原项目仓库可能已针对新GPU架构修复数值稳定性问题,拉取最新代码并重新安装依赖后再次测试。
内容的提问来源于stack exchange,提问作者Shanaka Ramesh
相关产品推荐
相关产品推荐

