断言错误:在 Pytorch 的 AutomaticMixed Precision 中没有记录此优化器的 inf 检查



我使用PyTorch的AutomaticMixedPrecision功能来训练占地面积和精度更小的网络
在某个时刻,网络中的一些嵌入的张量中有NaN,所以我想用0来代替它们,以便执行在线硬负样本挖掘。

然而,在像这样替换张量中的NaNs之后:

tensor[torch.isnan(tensor)] = 0

在执行下一个缩放器ste(scaler.step(优化器((时,我得到了以下错误:

assert len(optimizer_state["found_inf_per_device"]) > 0, "No inf checks were recorded for this optimizer."
AssertionError: No inf checks were recorded for this optimizer.

在消除此错误的同时,将NaN归零的正确方法是什么?

您能向我们展示您的完整代码吗。通常,如果步骤(批次(含有NaN,则建议跳过该步骤。

另请查看torch.nan_to_num.

最新更新