- 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

태그:

카테고리:

업데이트:

댓글남기기