본문 바로가기
AI HW study/AI - NLP

PyTorch for Deep Learning & Machine Learning – Full Course

by jyun13 2024. 1. 8.

https://www.youtube.com/watch?v=V_xro1bcAuA

 

* 참고

https://velog.io/@optjyy/pytorch-1.-tensor

 

[pytorch] 1. tensor

python 기반의 과학연산 패키지numpy를 대체하면서 gpu를 이용한 연산수행이 가능한 플랫폼최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼tensor는 numpy의 ndarray와 유사하며, gpu를 사용한 연

velog.io

https://rekt77.tistory.com/102

 

[인공지능 개념] Tensor란 무엇인가?

# 인공지능 기초 개념 안녕하세요 코드사기꾼입니다. 오늘은 Tensor에 대한 개념 정립을 하는 시간을 갖도록 하겠습니다. 인공지능 연구분야에서 가장 유명한 라이브러리인 TensorFlow를 정말 많은

rekt77.tistory.com

 

 

머신러닝은 데이터들을 숫자로 바꾸고 그리고 그 숫자들 사이에서 finding patterns를 하는 과정임.

what is tensor?

tensor는 numpy의 ndarray와 유사하며, gpu를 사용한 연산 가속도 가능합니다.

만약 tensor에 하나의 값만 존재한다면, .item() 을 사용하여 python scalar 값을 얻을 수 있습니다.

tensor에 하나의 값이 아니라 여러 개가 존재한다면 사용이 불가능합니다.

 

- 스칼라는 일반적으로 존재하는 그냥 값 1개

- 벡터는 스칼라가 여러 개 모인 것

- 차원이 높아질 수록 아래 차원의 것을 모아 놓은 배열인 것

 

# 파이토치 버전 확인
import torch
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
print(torch.__version__)

 

#introduction to tensors
#creating tensors

# scalar
scalar =  torch.tensor(7)
scalar

=> tensor(7)     #tensor은 type이다.

 

pytorch tensors are created using 'torch.Tensor()' -=  https://pytorch.org/docs/stable/tensors.html

 

torch.Tensor — PyTorch 2.1 documentation

Shortcuts

pytorch.org

 

GPU off -> None

rerun the cell

scalar.ndim   #no dimension, just sinlge number. ndim은 차원을 출력함. 한 개의 값만 존재하는 0차원.

=> 0

# Get tensor back as python int
scalar.item()

=> 7

# vector 
vector = torch.tensor([7, 7])
vector

=> tensor([7, 7])

 

vector.ndim     #vector는 1차원이니까

=> 1

 

vector.shape #위에가  2 * 1 element이니까 shape를 출력하면 2가 나옴

 

=> torch.Size([2])

 

........

 

 

 

 

 

torch.size는 tensor의 행렬 크기를 반환합니다. tuple 타입으로, 모든 튜플 연산을 지원합니다.

x = x.new_ones(5, 3, dtype=torch.double)
print(x)
print(x.size())
# out : torch.Size([5, 3])

 

in-place 방식으로 tensor의 값을 변경하는 연산 뒤에는 '_'가 붙습니다.

x.copy_(y)
y.add_(x)

 

크기 변경

tensor의 크기(size)나 모양(shape)을 변경하고 싶다면 torch.view를 사용합니다.

x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8) # -1은 다른 차원에서 유추합니다.
print(x.size(), y.size(), z.size())

# out : torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])

 

tensor - numpy 변환(Bridge)

이와 같은 코드를 통해 tensor를 numpy배열로 변환할 수 있습니다.

a = torch.ones(5)
b = a.numpy()