개발로 자기계발
article thumbnail
Published 2023. 4. 18. 15:16
PyTorch - 텐서란? (2) 인공지능/PyTorch
728x90

실행 환경: Google Colab

https://colab.research.google.com/

 

Google Colaboratory

 

colab.research.google.com

런타임 유형: GPU

GPU 변경 후 셀에 입력하면 내가 어떤 GPU를 쓰고 있는지 확인할 수 있다.

!nvidia-smi

무료버전인 경우: Tesla T4

 

Torch 버전확인하기

import torch
print(torch.__version__)
2.0.0+cu118
 
그러면 이런 값이 print가 되는데 밑에 내용을 뜻한다.
- torch 버전: 2.0.0
- GPU 병렬처리를 위한 CUDA 버전: 11.1.8

 

Tensor란?

PyTorch에서 Tensor는 수학적인 개념으로, 다차원 배열(multi-dimensional array)을 나타내는 데이터 구조이다.

Tensor는 머신러닝과 딥러닝에서 데이터, 파라미터, 그레이디언트(gradient) 등을 표현하는 데 사용된다.

PyTorch의 Tensor는 NumPy 배열과 유사하며, 다차원 배열을 다루는 데에 특화되어 있고, 임의의 차원(rank)을 가질 수 있으며, 정수나 부동소수점 등의 숫자 형식을 포함하는 요소를 가질 수 있다.

예를 들어, 1차원 Tensor는 벡터를, 2차원 Tensor는 행렬을 표현하는 데 사용될 수 있다.

Tensor는 PyTorch에서 가장 기본적인 데이터 구조 중 하나이며, 대부분의 계산은 Tensor를 사용하여 수행된다.

Tensor는 GPU와 CPU 간 데이터 전송, 자동 미분 등 딥러닝에서 필요한 기능을 지원하며, PyTorch에서 신경망 모델을 구축하고 학습하는 데에 필수적이다.

 

출처 - https://medium.com/linear-algebra-basics/vector-basic-operations-5f084ecee391

 

Scalar

# scalar
scalar = torch.tensor(6)
scalar

tensor(6)이 나오는 것을 확인할 수 있다.

 

1) 차원 확인

scalar.ndim

다만 스칼라는 차원이 없고 단지 하나의 숫자이다.

 

2) python int로 얻기

scalar.item()

6이 나오는것을 확인할 수 있다.


Vector

# Vector
vector = torch.tensor([5, 5])
vector

tensor([5, 5])이 나오는 것을 확인할 수 있다.

 

1) 차원 확인

vector.ndim

1차원으로 나온다.

 

2) 백터의 모양 확인

vector.shape

torch.Szie([2])가 나온다.


Mextrix

# Matrix
matrix = torch.tensor([[5, 5],
                       [6, 6]])
matrix

tensor([[5, 5],
        [6, 6]])

 

1) 차원 확인

matrix.ndim

2차원으로 나온다.

 

2) 인덱스 접근

matrix[1]

tensor([6, 6])이 나온다.

 

3) 메트릭스의 모양 확인

matrix.shape

torch.Size([2, 2])가 나오는데

첫 번째 차원: 내부 행렬을 2개의 행을 가진다. 따라서 차원의 크기 2

두 번째 차원: 각 행은 2개의 열을 가진다. 따라서 차원의 크기는 2


Tensor

# Tensor
tensor = torch.tensor(
    [
        [
         [1,2,3],
         [3,6,9],
         [2,4,5]
         ]
     ]
)
tensor

tensor([[[1, 2, 3],
         [3, 6, 9],
         [2, 4, 5]]])

 

1) 차원 확인

tensor.ndim

3차원으로 나온다.

 

2) 인덱스 접근

tensor[0]

tensor([[1, 2, 3],
        [3, 6, 9],
        [2, 4, 5]])

 

3) 메트릭스의 모양 확인

tensor.shape

torch.Size([1, 3, 3])가 나오는데

첫 번째 차원 (가장 바깥쪽 대괄호): 텐서는 1개의 요소(내부 행렬)를 가지고 있다. 따라서 첫 번째 차원의 크기는 1
두 번째 차원 (중간 대괄호): 내부 행렬은 3개의 행을 가지고 있다. 따라서 두 번째 차원의 크기는 3
세 번째 차원 (가장 안쪽 대괄호): 각 행은 3개의 열을 가지고 있다. 따라서 세 번째 차원의 크기는 3

728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)