[pytorch] tensor(텐서) 생성/이해/조작

2023. 3. 19. 22:40·pytorch
728x90
반응형

 

텐서는 파이토치에서 가장 기본이 되는 데이터 구조이다. 넘파이의 ndarray와 비슷하며 GPU에서의 연산도 가능하다.

 

1. 텐서(tensor) 생성

import torch

print(torch.tensor([[1,2],[3,4]])) # 2차원 형태의 텐서 생성
print(torch.tensor([[1,2],[3,4]], device = "cuda:0")) # GPU에 텐서 생성
print(torch.tensor([[1,2],[3,4]], dtype = torch.float64))# dtype을 이용하여 텐서 생성

2. 텐서를 ndarray로  변환

temp = torch.tensor([[1,2],[3,4]])

temp.numpy() # 텐서를 ndarray로  변환
temp.to("cpu").numpy() # GPU상의 텐서를 CPU의 텐서로 변환한 후 ndarray로 변환

 

3. 텐서의 자료형

- torch.FloatTensor : 32비트의 부동 소수점

- torch.DoubleTensor : 64비트의 부동 소수점

- torch.LongTensor : 64비트의 부호가 있는 정수

이와에도 다양한 유형의 텐서가 존재한다.

4. 텐서의 인덱스 / 슬라이스 

텐서는 넘파이의 ndarray를 조작하는 것과 유사하게 동작하기 때문에 배열처럼 인덱스를 바로 지정하거나 슬라이스 등을 사용할 수 있다.

temp = torch.FloatTensor([1,2,3,4,5,6,7])

print(temp[0], temp[1], temp[-1])
print(temp[2:5],temp[4:-1])

5. 텐서 연산

텐서는 넘파이의 ndarray와 같이 다양한 수학 연산이 가능하며, GPU를 사용하면 더 빠르게 연산할 수 있다. 참고로 텐서 간의 타입이 다르면 연산이 불가능하다. 

v = torch.tensor([1,2,3])
w = torch.tensor([3,4,6])

print(w-v)

6. 텐서 조작(view)

view는 넘파이의 reshape과 유사하다.

temp = torch.tensor([[1,2],[3,4]]) # 2x2 행렬 생성
temp

temp.view(4,1) # 2x2 -> 4x1 변형
temp.view(-1) # 2x2 -> 1차원 벡터
temp.view(1,-1) # 2x2 -> 1x4

 

 

 

 

728x90
반응형
저작자표시 (새창열림)

'pytorch' 카테고리의 다른 글

[pytorch] 2. 모델 파라미터(손실 함수/ 옵티마이저 / 학습률 스케줄러)  (0) 2023.04.04
[pytorch] 1. 모델 정의 (nn.Module / nn.Sequential)  (0) 2023.03.22
[pytorch] pytorch 특징 / pytorch 아키텍처 / pytorch 장점 / pytorch API 종류  (0) 2023.03.14
[pytorch] 딥러닝 학습 순서 / 딥러닝의 종류  (0) 2023.03.12
[pytorch] 머신러닝 딥러닝의 차이 / 머신러닝 학습 순서  (0) 2023.03.12
'pytorch' 카테고리의 다른 글
  • [pytorch] 2. 모델 파라미터(손실 함수/ 옵티마이저 / 학습률 스케줄러)
  • [pytorch] 1. 모델 정의 (nn.Module / nn.Sequential)
  • [pytorch] pytorch 특징 / pytorch 아키텍처 / pytorch 장점 / pytorch API 종류
  • [pytorch] 딥러닝 학습 순서 / 딥러닝의 종류
ISFP의 블로그
ISFP의 블로그
이건 첫 번째 레슨, 업무에서 마주친 문제 해결 경험 공유하기 이건 두 번째 레슨, 개인적으로 공부한 데이터/AI 지식을 기록하기 이건 세 번째 레슨, 다른 사람과 비교하지 말고 오직 어제의 나와 비교하기
  • ISFP의 블로그
    resultofeffort
    ISFP의 블로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (117)
      • python (25)
      • pythonML (27)
      • Linux (0)
      • 오류Error (8)
      • information (7)
      • Deep learning (5)
      • pytorch (29)
      • 코딩테스트 (4)
      • 밑바닥 DL (4)
      • 논문 리뷰 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    konlpy
    오블완
    Pandas
    데이터분석
    Ai
    deeplearning
    Deep Learning
    인공지능
    pytorch
    딥러닝
    머신러닝
    machinelearning
    nlp
    토큰화
    티스토리챌린지
    텍스트전처리
    Python
    cnn
    자연어처리
    분류
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
ISFP의 블로그
[pytorch] tensor(텐서) 생성/이해/조작
상단으로

티스토리툴바