-
패스트캠퍼스 환급챌린지 11일차 미션 (2월 11일) : 딥러닝·인공지능 Signature 초격차 패키지 Online. 강의 후기패스트캠퍼스 챌린지 2024. 2. 11. 17:12
자, 오늘은 일요일. 패캠 듣는 날이다.
오늘은
Part1. 딥러닝을 시작하기전에
CH04-01. 파이토치 개요
&
텐서 소개 및 생성 방법CH04-01. 파이토치 개요
파이토치란?
"파이토치라는 기계 학습 프레임워크 중 하나로, 굉장히 핫하다."
파이토치의 텐서(tensor)는 넘파이 배열과 매우 유사하며, GPU 연동을 통해 효율적으로 딥러닝 모델 학습 가능
그리고 코랩을 이용하면 쉽게 파이토치를 시작할 수 있는데 런타임유형변경에서 GPU로 바꿀 수 있다.
(여기까지는 많~이 해봤다)
데이터(리스트)를 넣어주면 그 자체가 바로 텐서로서 사용이 가능하다. 아래 예시코드를 보면
tensor(data)로 텐서가 된 데이터를 볼 수 있다. 기본적으로 pytorch 텐서 하나를 초기화 하면 CPU에 머무르는데,
텐서간의 연산을 하려면 같은 장치에 있어야한다.(둘다 CPU건 둘다 GPU건...)
그래서 파이토치는 cuda를 통해 GPU로 옮겨버릴 수 있다.
1. GPU 사용 여부 체크하기
import torch
data = [[1,2],[3,4]]
x = torch.tensor(data)
print(x.is_cuda)
x = x.cuda() #GPU로 옮기기
print(x.is_cuda)
x = x.CPU() # CPU로 옮기기
print(x.is_cuda)

이미지가 흐릿하니 다시한번 올려보겠다
2. 같은 디바이스가 아닌 상태에서 matmul을 쓴다면?
#GPU 장치의 텐서
a = torch.tensor([[1,2],[3,4]]).cuda() ←[[1,2],[3,4]]를 토치의 텐서에다 넣고, 이 a 변수를 .cuda()를 통해
GPU에 올린다.
#CPU 장치의 텐서
b = torch.tensor([[5,6],[7,8]])
#print(torch.matmul(a,b))를 하면 오류가 발생한다.

같은 디바이스 위에 있지 않아..블라블라블라 
다시 a를 cpu로 올리면 둘다 cpu라서 연산이 가능하다이다. CH04-02. 파이토치 텐서 소개 및 생성 방법
이번 시간에는 텐서 소개 및 생성 방법에 대해 알아보고자 한다.
텐서란?
"파이토치에서의 텐서는 기능적으로 넘파이와 매우 유사하며, 기본적으로 다차원 배열을 처리하기위해 적합한 자료구조."
음... 근데 이 강의 종합패키지 강의인데, 시작부터 기능적으로 넘파이와 유사하다고 하면 초보자들 중
몇명이 이해할지 모르겠다...
무튼 결론은 다차열 배열을 처리하기에 적합한 자료구조이며, 무엇보다도 "자동미분" 기능을 제공한다는 점! 중요!!
1. 텐서의 속성
1-1. 모양(shape)
1-2. 자료형(dtype)
1-3. 저장된 장치 이런것 들을 매 순간마다 확인해 볼 수 있다.

자, 그럼 같이 한번 짧은 코딩을 해보자.
tensor = torch.rand(3, 4) ← 0과 1 사이의 값을 3바이4 형태의 12개 데이터를 랜덤으로 토치형태로 만들어주세요.
print(tensor)
print(f"shape:{tensor.shape}")
print(f"Data Type:{tensor.dtype}")
print(f"Device:{tensor.device}")

2. 넘파이 배열과 토치는 서로 왔다갔다 할 수 있다.
tensor = torch.form_numpy(result)여기 위의 torch.from_numpy는 넘파이를 토치 텐서 객체로 바까주겠다 라는 뜻이다.
3. ones_like와 rand_like
다른 텐서의 정보를 토대로 텐서를 초기화 할 수 있다.(shape나 dtype 같은 자료형)
x = torch.tensor([[1,2],[3,4]])
# x와 같은 모양과 자료형을 가지지만, 값이 1인 텐서
x_ones = torch.ones_like(x)
print(x_ones)
# x와 같은 모양을 가지되, 자료형은 float으로 덮어쓰고, 값은 랜덤으로 채우기
x_rand = torch.rand_like(x, dtype = torch.float32)
print(x_rand)
정답은?

11일차 끝.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
'패스트캠퍼스 챌린지' 카테고리의 다른 글