파이토치 기본 모듈

Yoonsnee·2022년 12월 23일
0

파이토치 모듈

torch

  • main namespace로 tensor등의 다양한 수학 함수가 패키지에 포함되어 있음.
    NumPy와 같은 구조를 가지고 있어서 numpy와 상당히 비슷한 문법 구조를 가지고 있음.

torch.autograd

  • 자동 미분 기능을 제공하는 라이브러리

torch.nn

  • 신경망을 구축하기 위한 다양한 데이터 구조나 레이어가 정의되어 있음.
  • CNN, LSTM, 활성화 함수(ReLu), loss 등이 포함됨.

torch.optim

  • SGD 등의 파라미터 최적화 알고리즘 등이 구현되어 있음.

torch.utils.data

  • Gradient Descent 계열의 반복 연산을 할 때, 사용하는 미니 배치용 유틸리티 함수가 포함되어 있음.

torch.onnx

  • ONNX(Open Neural Network eXchange) 포맷으로 모델을 export 할 때 사용.
  • ONNX는 서로 다른 딥러닝 프레임워크 간에 모델을 공유할 때 사용하는 새로운 포맷.

torch.tensor

: 사용자가 입력한 값으로 텐서 초기화

x = torch.tensor([3,2.3])
print(x)

# 결과값
# tensor([3.0000, 2.3000])

torch.empty

: 초기화되지 않은 데이터로 값을 채움

x = torch.empty(4,2)
print(x)

# 결과값
# tensor([[ 0.0000e+00, -2.0000e+00],
#         [ 0.0000e+00, -2.0000e+00],
#         [ 8.4078e-45,  0.0000e+00],
#         [ 0.0000e+00,  0.0000e+00]])

torch.rand

: 괄호 안의 형태로 랜덤한 값을 뽑음.

x = torch.rand(4,2)
print(x)

# 결과값
# tensor([[0.0025, 0.4561],
#         [0.2656, 0.5692],
#         [0.1852, 0.6354],
#         [0.2920, 0.9406]])

torch.zeros

: 괄호 안의 형태로 0값을 넣음

  • dtype = torch.long은 64bit signed integer
  • dtype = torch.short는 32bit float point
x = torch.zeros(4,2,dtype=torch.long)
print(x)

# 결과값
# tensor([[0, 0],
#         [0, 0],
#         [0, 0],
#         [0, 0]])

torch.ones

: 괄호 안의 형태로 1만큼 채움

x = torch.ones(3,4)
print(x)

# 결과값
# tensor([[1., 1., 1., 1.],
#         [1., 1., 1., 1.],
#         [1., 1., 1., 1.]])

torch.randn_like

: x와 같은 크기로 랜덤한 값을 넣음
: x가 (2,3)으로 a와 형태가 동일하였으나, 랜덤한 값으로 채워지는 것을 알 수 있음.

a = torch.tensor([[1.5, 3.0, 4.5],
                 [5.8,9.8,3.1]])
a
# tensor([[1.5000, 3.0000, 4.5000],
#        [5.8000, 9.8000, 3.1000]])
x = torch.randn_like(a, dtype=float)
print(x)

# 결과값
# tensor([[-1.4292, -0.8185,  0.4500],
#         [ 1.9595,  1.7530,  1.0740]], dtype=torch.float64)

.item

  • randn(1)
x = torch.randn(1)
print(x) 
print(x.item())
print(x.dtype)

# 결과값
# tensor([-1.1091]) # 일반적으로는 소수점 4째자리까지만 출력
# -1.1090517044067383 # 전체 모든 숫자를 볼 수 있음.
# torch.float32
  • randn(2)
    : 반드시 한개의 값에서만 item() 함수를 사용할 수 있음.
x = torch.randn(2)
print(x) 
print(x.item())
print(x.dtype)

[참조]
https://gaussian37.github.io/dl-pytorch-snippets/

profile
윤쓰네뽀끼

0개의 댓글