시험공부빅데이터분석
← 보드Tensor · 1/11

Tensor가 뭐예요 — 차원별 숫자 상자

Tensor(텐서)는 숫자를 저장하는 다차원 배열이에요. "배열"은 숫자를 줄 세운 것이고, "다차원"은 줄이 한 줄이거나, 표(행과 열)이거나, 표가 여러 장 쌓인 것까지 모두 포함한다는 뜻이에요. 교수님은 NumPy의 ndarray, 판다스의 DataFrame, PyTorch의 Tensor가 같은 층위의 개념이라고 했어요. Tensor는 NumPy 배열과 아주 비슷해요.

비유 — 실험 데이터 엑셀

숫자 하나(시료 무게 한 값)는 0차원이에요. 한 줄(시료 한 개의 측정값 세 항목)은 1차원이에요. 엑셀 시트 한 장(시료 여러 개 × 항목 여러 개)은 2차원이에요. 시트를 여러 장 묶은 통합 문서는 3차원이에요.

차원이름shape 예시모양
0차원scalar()숫자 하나
1차원vector(3,)한 줄에 숫자 3개
2차원matrix(2, 3)2행 3열 표
3차원 이상tensor(2, 3, 4)3행 4열 표가 2장 쌓인 입체 (2 × 3 × 4)
import torch scalar = torch.tensor(7) vector = torch.tensor([1, 2, 3]) matrix = torch.tensor([[1, 2, 3], [4, 5, 6]]) tensor_3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(scalar.shape) print(vector.shape) print(matrix.shape) print(tensor_3d.shape)
torch.Size([]) torch.Size([3]) torch.Size([2, 3]) torch.Size([2, 2, 2])
코드 줄무슨 뜻
torch.tensor(7)숫자 7 하나를 Tensor로 만들어요. 괄호가 없으니 0차원이고 shape은 비어 있어요
torch.tensor([1, 2, 3])대괄호 한 겹 → 1차원, 원소 3개 → [3]
torch.tensor([[...], [...]])대괄호 두 겹 → 2차원. 바깥 칸 2개, 안쪽 3개 → [2, 3]
대괄호 세 겹3차원. 바깥부터 2개, 2개, 2개 → [2, 2, 2]

이미지도 Tensor예요. 이미지 한 장은 (channel, height, width) 순서(색 채널 수, 세로, 가로)이고, 여러 장을 한꺼번에 처리하면 맨 앞에 batch 차원이 붙어서 (batch, channel, height, width), 줄여서 (N, C, H, W)예요. 흑백 28×28이면 (28, 28), 색 채널 3개이면 (3, 28, 28), 이런 이미지 64장이면 (64, 3, 28, 28)이에요.

이미지와 batch 차원 표현
교수님 슬라이드 — 이미지 한 장 (C, H, W), 여러 장 (B, C, H, W)
시험엔 이렇게 써요 — 이렇게 고르세요

Tensor는 숫자를 저장하는 다차원 배열이며 0차원은 scalar, 1차원은 vector, 2차원은 matrix, 3차원 이상은 tensor라고 부른다. 이미지 batch의 shape은 (N, C, H, W) 순서이다. shape을 볼 때는 "대괄호가 몇 겹인지"가 차원 수예요.

잠깐 확인 — 흑백 28×28 이미지 32장을 묶은 batch의 shape은?

(32, 1, 28, 28)이에요. 순서는 (장 수, 채널, 세로, 가로)이고 흑백이라 채널은 1이에요.

다음 카드 → shape 읽기와 확인 3종 — shape, dtype, device ★★★

자료: 2주차 · Week02_Tensor_and_GPU(pdf, 풀이포함 ipynb) · 빅분02(2주차) 녹취