1️⃣ torch.empty(4,2) 는 초기화되지 않은 텐서 (쓰레기 값)
x = torch.empty(4,2) print(x)
💡 특징
- torch.empty()는 텐서의 메모리 공간만 할당하고, 값을 따로 초기화하지 않아.
- 따라서 텐서의 값들은 **메모리에 남아 있던 이전 데이터(쓰레기 값)**로 채워질 수 있어.
- 즉, 값이 랜덤하게 보이지만 사실은 PyTorch가 직접 생성한 무작위 값이 아니라, 기존 메모리에 남아 있던 값일 가능성이 높아.
🛑 그래서 주의할 점
- torch.empty()는 정말 "초기화되지 않은" 상태이기 때문에, 그 값을 바로 사용하면 안 돼.
- 보통 torch.empty()는 이후에 값을 따로 설정할 예정일 때만 사용하는 거야.
2️⃣ torch.rand(4,2) 는 무작위 값으로 초기화된 텐서
x = torch.rand(4,2) print(x)
💡 특징
- torch.rand()는 0과 1 사이에서 균등하게(randomly) 분포된 값들로 초기화해.
- 즉, **항상 새로운 난수(random number)**가 들어감.
- 내부적으로 난수 생성기를 사용해서 완전 새로운 값을 만듦.
사용 예시
torch.empty() | 초기화되지 않은 값 (쓰레기 값) | 나중에 값을 직접 덮어쓸 때 |
torch.rand() | 0~1 사이의 균등 분포 난수 | 가중치 초기화, 랜덤 데이터 생성 |
결론
- torch.empty()는 최대한 성능을 최적화하고 싶을 때, 나중에 값을 채울 예정이라면 사용
- torch.rand()는 진짜 난수가 필요할 때 사용 (특히 가중치 초기화, 랜덤 데이터 생성)
'머신 러닝 이론' 카테고리의 다른 글
Cross Entropy 손실함수 (0) | 2025.04.05 |
---|---|
컨볼루션 레이어 (0) | 2025.03.28 |
Mnist 데이터 셋 불러오기 (0) | 2025.03.27 |
backward() 와 requires_grad = True (0) | 2025.03.27 |
loss.backward() (0) | 2025.03.26 |