본문 바로가기
클라우드/colab

Colab을 이용해 인공지능을 개발해보자!-3편: PyTorch 텐서 조작하기

by kimjunhee9339 2024. 5. 23.

PyTorch icon

 

텐서 (Tensor):

  • PyTorch의 기본 데이터 구조는 텐서이다. 이는 다차원 배열로, NumPy 배열과 유사하지만 GPU 가속을 지원한다.

연산 방법은 다음과 같다.

t1=torch.tensor([...]) #텐서 생성
t2=torch.tensor([...])

t_plus=t1+t2 #더하기 연산
t_minus=-t1 #-연산
t_mul=t1*t2 #요소별 곱
t_div=t1/t2 #요소별 나누기
t_matmul=t1@t2 
t_matmul=t1.matmul(m2) #행렬곱
t_transpose=t1.transpose(dim1,dim2) #dim1과 dim2의 차원을 맞바꾼다.
t_permute=t1.permute(dim1,dim2,dim3,...) #넣은 차원 순서대로 차원을 나열한다.
t_view=t1.view(dim1,dim2,...) #메모리를 공유하는 사이즈가 다른 텐서 반환
t_reshape=t1.reshape(dim1,dim2,...) #메모리를 공유하는 게 가능하면 view의 결과를 아니면 복제하고 사이즈가 다른 텐서 반환
t_clone=t1.clone() #메모리를 복제하여 다른 텐서를 생성한다. 그리고 require_grad가 있을시 여기서 그래프 생성
t_detach=t1.detach() #메모리를 복제하여 다른 텐서를 생성하고 그래프 생성을 끊는다.
t_unsqeeze=t1.unsqueeze(dim) #dim차원과 dim+1차원 사이에 1인 차원생성
t_sqeeze1=t1.squeeze() #1인 차원 모두 제거
t_squeeze2=t1.squeeze(dim) #dim의 텐서개수가 1인 차원이라면 제거
t_cumpred=torch.cumprod(t1,dim=x) #x차원인 0번째부터 n번째까지 t1의 원소들의 곱들을 반환한다.
t_linspace=torch.linspace(start,end,steps) #start부터 end까지 공차가 steps인 등차수열의 값들을 모두 텐서에 저장하여 생성

 

 

그 외 다양한 연산 방법이 있다. 자주 쓰는 연산 방법은 다음과 같으니 참고 바란다.