round in PyTorch is a “Python-like” round (std::nearbyint) but not a “Cpp-like” round (std::round). It means, round([-0.5, 0.5]) would return [0, 0] but not [-1, 1]. I need “Cpp-like” round, especially when deploying my model.
Probably not unless there is a very compelling reason?
Using where + “manually rounding” + fuser should work reasonably well. In the thread you link, you use boolean indexing which is probably not a good idea for efficiency.