더북(TheBook)

torch.add는 말 그대로 더하라는 메서드입니다. 또한, 단순히 torch.add가 아닌 torch.add_가 사용되고 있는데 이 둘 간의 차이는 다음과 같습니다.

x = torch.tensor([1, 2])
y = x.add(10) ------ torch.add 적용
print(y)
print(x is y)
print('------------')
y = x.add_(10) ------ torch.add_ 적용
print(y)
print(x is y)

다음과 같이 torch.addtorch.add_의 결과는 같지만, xy와 같은지(x is y) 물었을 때는 다른 값을 출력합니다.

tensor([11, 12])
False
------------
tensor([11, 12])
True

즉, torch.add의 결과는 새로운 메모리 공간이 할당되어 저장되기 때문에 xy가 같은지 물었을 때 False라는 결과를 출력한 반면, torch.add_는 새로운 공간 할당 없이 기존의 메모리에 위치한 값을 대체합니다. 참고로 메서드에 _ 표시가 있다면( torch.clamp_()) 기존의 메모리 공간에 있는 값을 새로운 값으로 대체하겠다는 의미로 받아들이면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.