python 기반의 과학연산 패키지
tensor는 numpy의 ndarray와 유사하며, gpu를 사용한 연산 가속도 가능합니다.
만약 tensor에 하나의 값만 존재한다면, .item() 을 사용하여 python scalar 값을 얻을 수 있습니다. tensor에 하나의 값이 아니라 여러개가 존재한다면 사용이 불가능합니다.
x = torch.randn(1)
print(x)
print(x.item())
torch.size는 tensor의 행렬 크기를 반환합니다. tuple 타입으로, 모든 튜플 연산을 지원합니다.
x = x.new_ones(5, 3, dtype=torch.double)
print(x)
print(x.size())
# out : torch.Size([5, 3])
in-place 방식으로 tensor의 값을 변경하는 연산 뒤에는 '_'가 붙습니다.
x.copy_(y)
y.add_(x)
tensor의 크기(size)나 모양(shape)을 변경하고 싶다면 torch.view를 사용합니다.
x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8) # -1은 다른 차원에서 유추합니다.
print(x.size(), y.size(), z.size())
# out : torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])
a = torch.ones(5)
b = a.numpy()
위와 같은 코드를 통해 tensor를 numpy배열로 변환할 수 있습니다.
a = np.ones(5)
b = torch.from_numpy(a)
위와 같은 코드를 통해 numpy배열을 torch tensor로 변환할 수 있습니다.
.to 메소드를 이용하여 tensor를 어떠한 장치로도 옮길 수 있습니다.
a = torch.ones(5)
a = a.to(device)