부스트캠프 AI Tech 3기 (week2) Day6

정재욱·2022년 1월 24일
0

📌PyTorch Basics


PyTorch Operations


Tensor

  • 다차원 Arrays를 표현하는 PyTorch 클래스
  • 사실상 numpy의 ndarray와 동일
  • Tensor를 생성하는 함수도 거의 동일

✍입력

#numpy - ndarray
import numpy as np
n_array = np.arange(10).reshape(2,5)
print(n_array)
print(f"ndim : {n_array.ndim}, shape : {n_array.shape}")

💻출력

[[0 1 2 3 4]
 [5 6 7 8 9]]
ndim : 2, shape : (2, 5)

✍입력

#pytorch - tensor
import torch
t_array = torch.FloatTensor(n_array)
print(t_array)
print(f"ndim : {t_array.ndim}, shape : {t_array.shape}")

💻출력

tensor([[0., 1., 2., 3., 4.],
        [5., 6., 7., 8., 9.]])
ndim : 2, shape : torch.Size([2, 5])

Array to Tensor

  • Tensor 생성은 list나 ndarray를 사용 가능

✍입력

#data to tensor
data = [[3,5],[10,5]]
x_data = torch.tensor(data)
x_data

💻출력

tensor([[ 3,  5],
        [10,  5]])

✍입력

#ndarray to tensor
nd_array_ex = np.array(data)
tensor_array = torch.from_numpy(nd_array_ex)
tensor_array

💻출력

tensor([[ 3,  5],
        [10,  5]])

Tensor data types

  • 기본적으로 tensor가 가질수 있는 data 타입은 numpy와 동일

numpy like operations

  • 기본적으로 pytorch의 대부분의 사용법이 그대로 적용됨.

  • pythorch의 tensor는 GPU에 올려서 사용가능

Tensor handling

  • view, squeeze, unsqueeze 등으로 tensor 조정가능

    • view : reshape과 동일하게 tensor의 shape을 변환

      • view와 reshape은 contiguity 보장의 차이 (웬만하면 view를 써라!)
    • squeeze : 차원의 개수가 1인 차원을 삭제 (압축)

    • unsqueeze : 차원의 개수가 1인 차원을 추가

Tensor operations

  • 기본적인 tensor의 operations는 numpy와 동일

  • 행렬곱셈 연산은 dot이 아닌 mm 또는 matmul 사용

    • mm과 matmul은 broadcasting 지원 차이

      • mm (x) , matmul (o)

Tensor operations for ML/DL formula

  • nn.functional 모듈을 통해 다양한 수식 변환을 지원함

AutoGrad

  • PyTorch의 핵심은 자동 미분의 지원 \to backward 함수 사용

📌피어세션

  • 매일 알고리즘 문제 풀고 다음 피어세션때 다 같이 리뷰

  • 하루에 (크게) 1강 씩 들어서 목요일까지 강의 다 듣기

  • 질문은 slack과 피어세션을 최대한 활용

  • 오늘의 알고리즘 : 2048게임 문제


📌Day6 회고

  • <Pytorch 프로젝트 구조 이해하기> 다시 듣기...

  • 부덕이 싫어하는중

  • 알고리즘이 너무 어렵다 ㅠㅠ

  • PyTorch 학습시 모르는건 Pytorch Documentation를 이용하자!!!

profile
AI 서비스 엔지니어를 목표로 공부하고 있습니다.

0개의 댓글

관련 채용 정보