报错提示:
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)
问题解决!!!
文章出处登录后可见!
已经登录?立即刷新