- 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)을 가진 구조로 사용