In [1]:
import numpy as np
import torch
In [2]:
t = np.array([[[0, 1, 2],
[3, 4, 5]],
[[6, 7, 8],
[9, 10, 11]]])
ft = torch.FloatTensor(t)
print(ft)
print()
print(f'ft의 크기: {ft.shape} = {ft.shape[0]}축 x {ft.shape[1]}행 x {ft.shape[2]}열')
print()
print(f'ft.view([-1, 3]) = \n{ft.view([-1, 3])}')
print()
print(f'ft.view([-1, 3]) = \n{ft.view([-1, 3])}')
print()
print(f'ft.view([-1, 3])의 크기: {ft.view([-1, 3]).shape[0]}행 x {ft.view([-1, 3]).shape[1]}열')
print()
print(f'ft.view([-1, 1, 3]) = \n{ft.view([-1, 1, 3])}')
print()
print(f'ft.view([-1, 1, 3])의 크기: {ft.view([-1, 1, 3]).shape[0]}축 x {ft.view([-1, 1, 3]).shape[1]}행 x {ft.view([-1, 1, 3]).shape[2]}열')
tensor([[[ 0., 1., 2.], [ 3., 4., 5.]], [[ 6., 7., 8.], [ 9., 10., 11.]]]) ft의 크기: torch.Size([2, 2, 3]) = 2축 x 2행 x 3열 ft.view([-1, 3]) = tensor([[ 0., 1., 2.], [ 3., 4., 5.], [ 6., 7., 8.], [ 9., 10., 11.]]) ft.view([-1, 3]) = tensor([[ 0., 1., 2.], [ 3., 4., 5.], [ 6., 7., 8.], [ 9., 10., 11.]]) ft.view([-1, 3])의 크기: 4행 x 3열 ft.view([-1, 1, 3]) = tensor([[[ 0., 1., 2.]], [[ 3., 4., 5.]], [[ 6., 7., 8.]], [[ 9., 10., 11.]]]) ft.view([-1, 1, 3])의 크기: 4축 x 1행 x 3열
In [3]:
ft = torch.FloatTensor([[0], [1], [2]])
print(f'ft = \n{ft}')
print()
print(f'ft의 크기: {ft.shape[0]}행 x {ft.shape[1]}열')
ft = tensor([[0.], [1.], [2.]]) ft의 크기: 3행 x 1열
In [4]:
print(f'ft.squeeze() = {ft.squeeze()}')
print()
print(f'ft.squeeze()의 크기: {ft.squeeze().shape[0]}')
ft.squeeze() = tensor([0., 1., 2.]) ft.squeeze()의 크기: 3
In [5]:
ft = torch.Tensor([0, 1, 2])
print(f'ft = {ft}')
print()
print(f'ft의 크기: {ft.shape[0]}')
ft = tensor([0., 1., 2.]) ft의 크기: 3
In [6]:
print(f'ft.unsqueeze(0) = {ft.unsqueeze(0)}')
print()
print(f'ft.unsqueeze(0)의 크기: {ft.unsqueeze(0).shape[0]}행 x {ft.unsqueeze(0).shape[1]}열')
ft.unsqueeze(0) = tensor([[0., 1., 2.]]) ft.unsqueeze(0)의 크기: 1행 x 3열
In [7]:
print(f'ft.view(1, -1) = {ft.view(1, -1)}')
print(f'ft.view(1, -1)의 크기: {ft.view(1, -1).shape[0]}행 x {ft.view(1, -1).shape[1]}열')
ft.view(1, -1) = tensor([[0., 1., 2.]]) ft.view(1, -1)의 크기: 1행 x 3열
In [8]:
print(f'ft.unsqueeze(0) = \n{ft.unsqueeze(1)}')
print()
print(f'ft.unsqueeze(0)의 크기: {ft.unsqueeze(1).shape[0]}행 x {ft.unsqueeze(1).shape[1]}열')
ft.unsqueeze(0) = tensor([[0.], [1.], [2.]]) ft.unsqueeze(0)의 크기: 3행 x 1열
In [9]:
print(f'ft.unsqueeze(0) = \n{ft.unsqueeze(-1)}')
print()
print(f'ft.unsqueeze(0)의 크기: {ft.unsqueeze(-1).shape[0]}행 x {ft.unsqueeze(-1).shape[1]}열')
ft.unsqueeze(0) = tensor([[0.], [1.], [2.]]) ft.unsqueeze(0)의 크기: 3행 x 1열
In [10]:
lt = torch.LongTensor([1, 2, 3, 4])
print(lt)
print(lt.float())
tensor([1, 2, 3, 4]) tensor([1., 2., 3., 4.])
In [11]:
bt = torch.ByteTensor([True, False, False, True])
print(bt)
tensor([1, 0, 0, 1], dtype=torch.uint8)
In [12]:
print(bt.long())
print(bt.float())
tensor([1, 0, 0, 1]) tensor([1., 0., 0., 1.])
In [13]:
x = torch.FloatTensor([[1, 2], [3, 4]])
y = torch.FloatTensor([[5, 6], [7, 8]])
print(f'x = \n{x}')
print(f'y = \n{y}')
x = tensor([[1., 2.], [3., 4.]]) y = tensor([[5., 6.], [7., 8.]])
In [14]:
print(torch.cat([x, y], dim=0))
print(torch.cat([x, y], dim=1))
tensor([[1., 2.], [3., 4.], [5., 6.], [7., 8.]]) tensor([[1., 2., 5., 6.], [3., 4., 7., 8.]])
In [15]:
x = torch.FloatTensor([1, 4])
y = torch.FloatTensor([2, 5])
z = torch.FloatTensor([3, 6])
print(f'x = {x}')
print(f'y = {y}')
print(f'z = {z}')
x = tensor([1., 4.]) y = tensor([2., 5.]) z = tensor([3., 6.])
In [16]:
print(torch.stack([x, y, z]))
print(torch.stack([x, y, z], dim=1))
tensor([[1., 4.], [2., 5.], [3., 6.]]) tensor([[1., 2., 3.], [4., 5., 6.]])
In [17]:
print(torch.cat([x.unsqueeze(0), y.unsqueeze(0), z.unsqueeze(0)], dim=0))
tensor([[1., 4.], [2., 5.], [3., 6.]])
In [18]:
print(torch.cat([x.unsqueeze(0), y.unsqueeze(0), z.unsqueeze(0)], dim=1))
tensor([[1., 4., 2., 5., 3., 6.]])
In [19]:
print(torch.cat([x.unsqueeze(1), y.unsqueeze(1), z.unsqueeze(1)], dim=0))
tensor([[1.], [4.], [2.], [5.], [3.], [6.]])
In [20]:
print(torch.cat([x.unsqueeze(1), y.unsqueeze(1), z.unsqueeze(1)], dim=1))
tensor([[1., 2., 3.], [4., 5., 6.]])
In [21]:
x = torch.FloatTensor([[0, 1, 2], [2, 1, 0]])
print(x)
tensor([[0., 1., 2.], [2., 1., 0.]])
In [22]:
print(torch.ones_like(x))
print(torch.zeros_like(x))
tensor([[1., 1., 1.], [1., 1., 1.]]) tensor([[0., 0., 0.], [0., 0., 0.]])
In [23]:
x = torch.FloatTensor([[1, 2], [3, 4]])
print(x)
tensor([[1., 2.], [3., 4.]])
In [24]:
print(x.mul(2.))
print(x)
tensor([[2., 4.], [6., 8.]]) tensor([[1., 2.], [3., 4.]])
In [25]:
print(x.mul_(2.))
print(x)
tensor([[2., 4.], [6., 8.]]) tensor([[2., 4.], [6., 8.]])
'모두를 위한 PyTorch' 카테고리의 다른 글
Lab01-1 (0) | 2021.01.23 |
---|