UserWarning: __floordiv__is deprecated, and its behavior will change in a future version of pytorch.

报错提示:

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)

问题解决!!!

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年7月29日
下一篇 2023年7月29日

相关推荐