torch.remainder(input, other, *, out=None) Tensor

Computes Python’s modulus operation entrywise. The result has the same sign as the divisor other and its absolute value is less than that of other.

It may also be defined in terms of torch.div() as

torch.remainder(a, b) == a - a.div(b, rounding_mode="floor") * b

Supports broadcasting to a common shape, type promotion, and integer and float inputs.


Complex inputs are not supported. In some cases, it is not mathematically possible to satisfy the definition of a modulo operation with complex numbers. See torch.fmod() for how division by zero is handled.

See also

torch.fmod() which implements C++’s std::fmod. This one is defined in terms of division rounding towards zero.

  • input (Tensor or Scalar) – the dividend

  • other (Tensor or Scalar) – the divisor

Keyword Arguments

out (Tensor, optional) – the output tensor.


>>> torch.remainder(torch.tensor([-3., -2, -1, 1, 2, 3]), 2)
tensor([ 1.,  0.,  1.,  1.,  0.,  1.])
>>> torch.remainder(torch.tensor([1, 2, 3, 4, 5]), -1.5)
tensor([ -0.5000, -1.0000,  0.0000, -0.5000, -1.0000 ])


Access comprehensive developer documentation for PyTorch

View Docs


Get in-depth tutorials for beginners and advanced developers

View Tutorials


Find development resources and get your questions answered

View Resources