I’m curious why this API is named with a trailing underscore, how do we know whether there should be a trailing underscore or not without referring to the documentation? Curious what is the convention here
Hi,
There is a tensor.function_
for every tensor.function
. The difference is that first one is in-place operation while the latter is not. Both of them use same operations.
In this page (and some others), you will find similar functions.
For instance,
x = torch.tensor([1,2,3])
print(x) # tensor([1, 2, 3])
print(x.add(1)) # tensor([2, 3, 4])
print(x) # tensor([1, 2, 3])
print(x.add_(1)) # tensor([2, 3, 4]) -> inplace operation, changes the value of x in memory
print(x) # tensor([2, 3, 4])
Bests
1 Like