[Pytorch] Tensor
- Pytorch Tensor
import torch
import numpy as np
- torch.Tensor : torch.FloatTensor - [-3.4 x 10^38 ~ 3.4 x 10^38]
ft = torch.Tensor([[1, 2],
[3, 4]])
ft
tensor([[1., 2.],
[3., 4.]])
- torch.LongTensor - 64-bit integer (signed) [-9223372036854775808 ~ 9223372036854775807]
lt = torch.LongTensor([[0.5, 1.5],
[-0.5, -1.5],
[-9223372036854775808, 9223372036854775807]])
lt
tensor([[ 0, 1],
[ 0, -1],
[-9223372036854775808, 9223372036854775807]])
- torch.ByteTensor - torch.uint8 [이미지 처리와 같은 분야에서, 픽셀 값이 0~255 범위에 있을 때 자주 사용]
bt = torch.ByteTensor([[-255, 255],
[255, -255]])
bt
tensor([[ 1, 255],
[255, 1]], dtype=torch.uint8)
- 임의 크기의 텐서 만들기
print(torch.Tensor(4,2))
print(torch.Tensor(2,4))
print(torch.Tensor(2,3,4))
tensor([[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.]])
tensor([[0., 0., 0., 0.],
[0., 0., 0., 0.]])
tensor([[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
- NumPy <-> Pytorch
x = np.array([[1, 2],
[3, 4]])
print(x, type(x))
[[1 2]
[3 4]] <class 'numpy.ndarray'>
# numpy -> tensor
x = torch.from_numpy(x)
print(x, type(x))
tensor([[1, 2],
[3, 4]]) <class 'torch.Tensor'>
# tensor -> numpy
x = x.numpy()
print(x, type(x))
[[1 2]
[3 4]] <class 'numpy.ndarray'>
- 텐서 타입 변환
# FloatTensor -> LongTensor
ft.long()
tensor([[1, 2],
[3, 4]])
# LongTensor -> FloatTensor
lt.float()
tensor([[ 0.0000e+00, 1.0000e+00],
[ 0.0000e+00, -1.0000e+00],
[-9.2234e+18, 9.2234e+18]])
- 텐서 크기 구하기
st = torch.Tensor([[[1,2,3],
[4,5,6]]])
print(st.size())
print(st.shape)
torch.Size([1, 2, 3])
torch.Size([1, 2, 3])
- 텐서 차원 개수 구하기
print(st.dim())
print(len(st.size()))
3
3
댓글남기기