logo

Modular Arithmetic in PyTorch 📂Machine Learning

Modular Arithmetic in PyTorch

Explanation

Modular arithmetic, also known as the remainder operation, is a function that returns the remainder when dividing aa by bb. In PyTorch, there are two functions available:

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

Both provide the remainder when aa is divided by bb, but the outcomes are slightly different. If you’re curious about the specific formulas, refer to the official documents for remainder and fmod. Simply put, in remainder, the sign of the remainder is the same as that of the divisor bb, whereas in mod, the sign of the remainder is the same as that of the dividend aa.

>>> 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])

Environment

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