pytorch中函数名后有下划线和没有下划线

一般来说,在pytorch中如果对tensor的一个函数后加上了下划线,则表明这是一个in-place类型,所谓in-place类型是指在一个tensor上操作了之后,是直接修改了这个tensor,还是返回一个新的tensor,而旧的tensor并不修改。

例如:

clamp和clamp_

x = torch.randn(3)
# output_1 = torch.clamp(x,min= 0,max = 0.5)
# print(x,'
',output_1)

tensor([2.2404, 0.3846, 0.6169])
 tensor([0.5000, 0.3846, 0.5000])

output_2 = torch.clamp_(x,min= 0,max = 1)
print(x,'
',output_2)


tensor([0.0000, 0.4333, 0.0000])
 tensor([0.0000, 0.4333, 0.0000])
原文地址:https://www.cnblogs.com/tingtin/p/13617780.html