エラーメッセージ:
ユーザー警告: __floordiv__ は非推奨であり、その動作は pytorch の将来のバージョンで変更される予定です。現在、0 に向かって丸められます (「floor」ではなく「trunc」関数と同様)。これにより、負の値が正しく丸められなくなります。現在の動作を維持するには、torch.div(a, b,rounding_mode='trunc') を使用するか、実際のフロア分割には torch.div(a, b,rounding_mode='floor') を使用します。
dim_t = self.length ** (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)
問題が解決しました!!!