Dtype
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 15/78
- 5 dk
Dtype, tensor elemanlarının veri türünü belirtir.
Dtype
Eleman türü bellek, hız ve doğruluğu belirler:
float32: varsayılan, eğitim için standart.float16/bfloat16: yarım hassasiyet; GPU'da iki kat hız ve yarı bellek (karışık hassasiyetli eğitim).int64(long): indeksler ve sınıf etiketleri.bool: maskeler.
x = torch.tensor([1.0, 2.0])
print(x.element_size()) # 4 bayt
print(x.half().element_size()) # 2 bayt
print((x > 1).dtype) # torch.boolHassasiyet ve taşma
Düşük hassasiyetli türler küçük farkları kaybeder ve büyük değerlerde taşar. float16'nın en büyük değeri 65504'tür:
print(torch.tensor(70000.0).half().item()) # inf: taşma
print(torch.tensor(1.0001).half().item()) # 1.0: ayrıntı kayboldu
print(torch.tensor(70000.0).bfloat16().item()) # 70144.0: bfloat16 aralığı genişbfloat16, float32 ile aynı üs aralığına sahip olduğu için taşmaz ama daha az ondalık basamak tutar; büyük modellerin eğitiminde sık kullanılır.
Uygulama Bellek hesabı
x = torch.zeros(1000, 1000) tensörünün bayt cinsinden boyutunu (x.element_size() * x.numel()) yazdır. Aynı hesabı x.half() için yaz. Ardından torch.tensor(70000.0).half().item() değerini yazdır.
Başlangıç kodu
import torch
x = torch.zeros(1000, 1000)
# buraya yazÖrnek çözüm
import torch
x = torch.zeros(1000, 1000)
print(x.element_size() * x.numel())
h = x.half()
print(h.element_size() * h.numel())
print(torch.tensor(70000.0).half().item())Beklenen çıktı
4000000 2000000 inf
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 1 milyar parametreli bir model float32'de yaklaşık ne kadar bellek tutar?
- 8 GB
- 4 GB Doğru cevap
- 1 GB
- 32 GB
Açıklama: Parametre başına 4 bayt: 10⁹ × 4 = 4·10⁹ bayt ≈ 4 GB (float16'da 2 GB).
2 Tensörü yarım hassasiyete çevir.
y = x.____()
y = x.half()
Açıklama: .half() float16 üretir.
3 Türleri eşleştir.
| Kavram | Anlamı |
|---|---|
float32 |
4 bayt, varsayılan |
float16 |
2 bayt, dar aralık |
bfloat16 |
2 bayt, geniş aralık |
bool |
Maske |