본문 바로가기

CS

[AI] 신경망 기초 - pytorch

Attributes

  • shape : 형태
  • dtype (datatype) : 타입 (default = float32)
  • device : 학습에 사용할 자원 (default = cpu)
t = torch.zeros(4, 3)
print(t)
    """
    tensor([[0., 0., 0.], 
            [0., 0., 0.], 
            [0., 0., 0.]])
    """
print(t.shape)
	"""
    torch.Size([4, 3])
    """

print(t.dtype)
	"""
    torch.float32
    """
print(t.device)
	"""
    cpu
    """

shape 관련 함수들

  • unsqueeze : rank 늘리기,
    • 위 예제의 torch.zeros(4, 3)의 rank는 2.
    • torch.zeros(4,4,3)의 rank는 3.
    • 차원을 늘린다고 생각하면 된다.
  • squeeze : rank 줄이기
    • 차원을 줄인다고 생각하면 된다.
t2 = torch.rand(2)
print("t2: ") 
print(t2)
print(t2.shape)

t2AddRank = t2.unsqueeze(0)
print(t2AddRank)
print(t2AddRank.shape)
    """
    t2: 
    tensor([0.7109, 0.1563])
    torch.Size([2])
    tensor([[0.7109, 0.1563]])
    torch.Size([1, 2])
    """
  • reshape : 원하는 shape로 바꾼 동일한 값의 텐서 리턴
  • permute : shape(차원)을 교환 
t = torch.rand(192)
print(t.shape)
print("basic t >> ",t.shape)

t = t.reshape(3, 8, 8)
print(t.shape)
print("reshape >> ",t.shape)

t = t.permute(1, 2, 0)
print("permute >> ",t.shape)
    """
    torch.Size([192])
    basic t >>  torch.Size([192])
    torch.Size([3, 8, 8])
    reshape >>  torch.Size([3, 8, 8])
    permute >>  torch.Size([8, 8, 3])
    """

device

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
"""
	-보일러 코드-
	gpu 사용 가능하면, gpu 사용.
    불가능하면, cpu 사용
"""
t_gpu = t.cuda(device)
"""
	디바이스를 삽입
"""