zero_grad() nima qiladi?PyTorch’da model train qilayotganda gradientlar avtomatik ravishda yig‘ilib boradi.
Shuning uchun har bir batchdan oldin:
optimizer.zero_grad()
deb eski gradientlarni tozalaymiz.
Jarayon juda oddiy:
zero_grad() → eski gradientni tozalaydi
backward() → yangi gradientni hisoblaydi
step() → weightlarni yangilaydi
Agar
zero_grad() bo‘lmasa, yangi gradient oldingisiga qo‘shilib ketadi va model noto‘g‘ri update bo‘lishi mumkin.Qisqasi: `zero_grad()` — modelga “oldingi xatoni unut, yangi batchdan boshlaymiz” deyish.
@uzbrainai