logo

PyTorchのモジュラー演算 📂機械学習

PyTorchのモジュラー演算

説明

モジュラー演算とは、剰余演算とも呼ばれ、$a$を$b$で割った時の余りを返す関数のことを言う。PyTorchには二つの関数がある。

  • torch.remainder(a,b)
  • torch.fmod(a,b)

どちらも$a$を$b$で割った時の余りを返すことは同じだが、結果が少し異なる。具体的な式に興味があれば、remainderfmodの公式文書を参照してほしい。簡単に言うと、remainderは余りの符号が割る数$b$と同じになるようにされており、modは余りの符号が割られる数$a$と同じになるようにされている。

>>> torch.remainder(torch.tensor([-3.1, 3.1, 1, -0.5, 2.1]), 2)
tensor([0.9000, 1.1000, 1.0000, 1.5000, 0.1000])

>>> torch.remainder(torch.tensor([-3.1, 3.1, 1, -0.5, 2.1]), -2)
tensor([-1.1000, -0.9000, -1.0000, -0.5000, -1.9000])

>>> torch.fmod(torch.tensor([-3.1, 3.1, 1, -0.5, 2.1]), 2)
tensor([-1.1000,  1.1000,  1.0000, -0.5000,  0.1000])

>>> torch.fmod(torch.tensor([-3.1, 3.1, 1, -0.5, 2.1]), -2)
tensor([-1.1000,  1.1000,  1.0000, -0.5000,  0.1000])

環境

  • OS: Windows11
  • Version: Python v3.9.13, torch==1.13.1