Function Differences with torch.floor_divide
torch.floor_divide
torch.floor_divide(
input,
other,
out=None
)
For more information, see torch.floor_divide.
mindspore.ops.FloorDiv
class mindspore.ops.FloorDiv(*args, **kwargs)(
input_x,
input_y
)
For more information, see mindspore.ops.FloorDiv.
Differences
PyTorch: The output will be rounded toward 0 rather than the floor.
MindSpore: The output will be rounded exactly toward floor.
Code Example
import mindspore as ms
import mindspore.ops as ops
import torch
import numpy as np
# In MindSpore, the output will be rounded toward the floor, so, after division, the output -0.33 will be rounded to -1.
input_x = ms.Tensor(np.array([2, 4, -1]), ms.int32)
input_y = ms.Tensor(np.array([3, 3, 3]), ms.int32)
floor_div = ops.FloorDiv()
output = floor_div(input_x, input_y)
print(output)
# Out:
# [0 1 -1]
# In torch, the output will be rounded toward 0, so, after division, the output -0.33 will be rounded to 0.
input_x = torch.tensor(np.array([2, 4, -1]))
input_y = torch.tensor(np.array([3, 3, 3]))
output = torch.floor_divide(input_x, input_y)
print(output)
# Out:
# tensor([0, 1, 0])