UserWarning:

报错提示:

UserWarning: __floordiv__is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the ‘trunc’ function NOT ‘floor’). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode=‘trunc’), or for actual floor division, use torch.div(a, b, rounding_mode=‘floor’).

dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)

抱错的代码:

dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)

解决方案:

在这个警告是由于Pytorch新版本中的行为变更导致的,建议在代码中,将操作符“//“替换为“torch.div()”,以避免这个警告。

例如,我的代码中有如下操作:

dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)

那么可以将其修改为:

dim_t = self.temperature ** (2 * torch.div(dim_t, 2, rounding_mode='trunc') / self.num_pos_feats)

问题解决!!!

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/d1229bde31.html