最近在复现一个开源的ViT模型,用的PyTorch 2.1,训练到第3个epoch左右loss突然变成NaN,梯度也炸了。同样的数据和超参(lr=1e-4, batch=64),我换成TensorFlow 2.15跑同样的模型结构就完全正常。检查了输入没有脏数据,也没用混合精度。想问下大家,这是PyTorch的autograd机制哪里容易踩坑吗?还是说某些op的数值稳定性不一样?真的有点迷茫,求指点。