CodeBlanks Logo Icon CodeBlanks

Dtype

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.bool

Hassasiyet 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

model.py
import torch

x = torch.zeros(1000, 1000)

# buraya yaz

Örnek çözüm

model.py
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.

Soru
y = x.____()
Cevap
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

İleri seviye bölümündeki tüm dersler