파이토치 다차원 텐서 표현

Yoonsnee·2022년 12월 23일
0

  • ndim: tensor의 차원 확인
  • shape: tensor가 어떤 구조인지 확인(행 수, 열 수 등등)
  • size(): shape과 동일 -> 주의: '()'해야 shape과 같은 결과

0D Tensor(Scalar)

  • 하나의 숫자를 담고 있는 텐서
  • 축과 형상이 0개!
t0 = torch.tensor(0)
print(t0.ndim) 
print(t0.shape) 
print(t0)

# 결과값
# 0
# torch.Size([])
# tensor(0)

1D Tensor(Vector)

  • 값들을 저장한 리스트와 유사한 텐서
  • 축이 1개!
t1 = torch.tensor([1,2,3])
print(t1.ndim)
print(t1.shape)
print(t1)

# 결과값
# 1
# torch.Size([3])
# tensor([1, 2, 3])

2D Tensor(Matrix)

  • 행렬과 같은 모양으로 두개의 축이 존재
  • 일반적인 수치, 통계 데이터셋이 해당
  • 주로 샘플(samples)과 특성(features)을 가진 구조로 사용
t2 = torch.tensor([[1,2,3],[4,5,6],[7,8,9]])
print(t2.ndim)
print(t2.shape)
print(t2)

# 결과값
# 2
# torch.Size([3, 3])
# tensor([[1, 2, 3],
#         [4, 5, 6],
#         [7, 8, 9]])

3D Tensor

  • 큐브(cube)와 같은 모양으로 세개의 축이 존재
  • 데이터가 연속된 시퀀스 데이터나 시간 축이 포함된 시계열 데이터에 해당
  • 주식 가격 데이터셋, 시간에 따른 질병 발병 데이터 등이 존재
  • 주로 샘플(samples), 타임스텝(timesteps), 특성(features)을 가진 구조로 사용
t3 = torch.tensor([[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]]])
print(t3.ndim)
print(t3.shape)
print(t3)

# 결과값
# 3
# torch.Size([3, 3, 3])
# torch.Size([3, 3, 3])
# tensor([[[1, 2, 3],
#          [4, 5, 6],
#          [7, 8, 9]],

#         [[1, 2, 3],
#          [4, 5, 6],
#          [7, 8, 9]],

#         [[1, 2, 3],
#          [4, 5, 6],
#          [7, 8, 9]]])

4D Tensor

  • 4개의 축
  • 컬러 이미지 데이터가 대표적인 사례 (흑백 이미지 데이터는 3D Tensor로 가능)
  • 주로 샘플(samples), 높이(height), 너비(width), 컬러 채널(channel)을 가진 구조로 사용

5D Tensor

  • 5개의 축
  • 비디오 데이터가 대표적인 사례
  • 주로 샘플(samples), 프레임(frames), 높이(height), 너비(width), 컬러 채널(channel)을 가진 구조로 사용
profile
윤쓰네뽀끼

0개의 댓글