pytorch 기본기

PyTorch Tensor Basic Usage

  1. Create Tensor
  2. indexing, Joining, Slicing
  3. Initialization
  4. Math Operations

  • GPU로 설정하기

런타임 유형변경 -> GPU로 바꾸기


  • 기본세팅, Tensor 개념

import torch 실행 잘 되는지 확인 !

안된다면 패키지 설치해야 함

 

 

# import가 안된다면

!pip3 install torch
!pip3 install torchvision

 

Tensor란 ? (feat. chatGpt 4o)

 

'''

텐서(Tensor)는 수학 및 컴퓨터 과학에서 다차원 배열을 의미합니다. 이는 스칼라(0차원), 벡터(1차원), 행렬(2차원)을 일반화한 것으로, 다차원 데이터를 표현하는 데 사용됩니다. 텐서는 딥러닝과 머신러닝에서 중요한 개념으로, 주로 신경망의 입력, 출력, 그리고 중간 계산 결과를 나타내는 데 사용됩니다.

다음은 텐서의 차원별 예시입니다:

  1. 스칼라 (0차원 텐서):
    • 단일 값입니다. 예를 들어, 5는 스칼라입니다.
  2. 벡터 (1차원 텐서):
    • 일차원 배열로, 여러 개의 스칼라 값을 나열한 것입니다. 예를 들어, [1, 2, 3]은 벡터입니다.
  3. 행렬 (2차원 텐서):
    • 이차원 배열로, 행과 열로 구성됩니다. 예를 들어, [[1, 2, 3], [4, 5, 6]]은 행렬입니다.
  4. 다차원 텐서:
    • 3차원 이상의 배열로, 여러 차원을 가질 수 있습니다. 예를 들어, 3차원 텐서는 [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]과 같이 구성될 수 있습니다.

텐서는 주로 다음과 같은 이유로 사용됩니다:

  • 데이터 표현: 텐서는 이미지, 오디오, 텍스트 등의 다양한 데이터를 표현하는 데 사용됩니다. 예를 들어, 컬러 이미지는 일반적으로 3차원 텐서로 표현됩니다 (높이 x 너비 x 색상 채널).
  • 연산: 텐서는 행렬 곱셈, 합성곱 등 다양한 수학 연산에 사용됩니다. 딥러닝에서 텐서 연산은 신경망의 학습과 추론 과정에서 핵심적인 역할을 합니다.
  • 라이브러리 지원: TensorFlow, PyTorch 등의 딥러닝 라이브러리는 텐서를 기본 데이터 구조로 사용하여 다양한 모델을 효율적으로 구현하고 연산할 수 있게 해줍니다.

텐서의 개념을 이해하는 것은 딥러닝 및 머신러닝 모델을 설계하고 구현하는 데 있어 매우 중요합니다.

'''

 

행렬을 말하는듯 하다.


Create Tensor

 

# 1. Create Tensor
# 1) random numbers
import torch

# torch.rand(sizes) --> (0,1) 사이의 실수형 값을 랜덤값으로 발생함
# sizes : 1차원 갯수, 2차원 행렬갯수 등 지정
# 0과 1사이의 실수형 숫자를 균등하게 생성
x = torch.rand(2, 3)

x

0~1사이의 숫자가 생성된다

# torch.randn(sizes) --> Z(0,1)
# 평균이 0이고 표준편차가 1인 가우시안 정규분포를 이용해서 생성 # numpy의 randn하고는 차이가 있다.
x = torch.randn(2,3)
x

 

0~1사이가 아닌 평균이 0이고 표준편차가 1인 정규분포로 생성

위의 주석에 가우시안분포는 그냥 정규분포를 뜻한다

 

# torch.randperm(n) --> permutation of 0 ~ n
x = torch.randperm(5)
x

순열 만들기

 


*torch 에서 랜덤값으로 텐서 생성 *

  1. torch.rand() : 0과 1사이의 숫자를 균등하게 생성
  2. torch.rand_like() : 사이즈를 튜플로 입력하지 않고 기존의 텐서로 정의
  3. torch.randn() : 평균이 0이고 표준편차가 1인 가우시안 정규분포를 이용해서 생성
  4. torch.randn_like() : 기존의 텐서를 사용해서 같은 텐서를 생성
  5. torch.randint() : 주어진 범위 내의 정수를 균등하게 생성
  6. torch.randint_like() : 텐서 이용, 같은 텐서 생성
  7. torch.randperm() : 주어진 범위 내의 정수를 랜덤하게 생성
복사했습니다!