Week 1 스크립트는 4단계로 구성돼 있었어.
| 단계 | 하는 일 | 직관적 의미 |
|---|---|---|
| A. Tensor Basics | “숫자 배열”을 만들고 변형 | 데이터를 담는 그릇 |
| B1. Manual Gradient | 수학식으로 직접 미분 | 기울기를 손으로 구함 |
| B2. Autograd | PyTorch가 자동으로 미분 | 기울기를 자동으로 구함 |
| C. nn.Module | 모델 구조화 + Optimizer 사용 | 딥러닝 기본 훈련 루프 |
| D. CPU/MPS 비교 | 연산 속도 비교 | GPU는 병렬 계산기 |
텐서(tensor) = 숫자를 담은 다차원 상자(multidimensional array), 단순히 “숫자 묶음”.
3.14, -5, 1)[1, 2, 3])[[1,2],[3,4]])위의 4개의 예시 전부다 텐서 라고함.
PyTorch에서의 텐서란? → GPU에서 빠르게 연산할 수 있는 N차원 배열 + 자동미분 기능을 가진 객체
a.shape: torch.Size([3, 4])
b.shape: torch.Size([3, 1])
c.shape: torch.Size([3, 4])
v.shape: torch.Size([12])
r.shape: torch.Size([3, 4])
device: mps | memory: MPS (Apple Silicon GPU)
| 이름 | 모양(shape) | 의미 |
|---|---|---|
a |
(3, 4) | 3행 4열짜리 랜덤 행렬 |
b |
(3, 1) | 3행 1열짜리 세로 벡터 |
c |
(3, 4) | a + b 결과 (브로드캐스팅 덕분) |
v |
(12,) | c를 평평하게(flatten) 만든 벡터 |
r |
(3, 4) | 다시 원래 모양으로 reshape |
device |
mps | Apple GPU 위에서 계산 중 |
x = torch.randn(3, 4, device='mps', requires_grad=True)
이 한 줄이 의미하는 건:
(3, H, W) → 3차원 텐서야.예시:
a = torch.randn(3, 4) # 3x4 랜덤 행렬
b = torch.ones(3, 1) # 3x1 행렬
c = a + b # broadcasting: 자동 확장 후 더하기
👉 Broadcasting