Çıkarım için torch.no_grad()
Bellek kazanmak için grafik izlemeyi atlayın.
Çıkarım için torch.no_grad(), CoddyKit'te ücretsiz bir Deep Learning Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Deep Learning Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Deep Learning Academy kursu toplamda 4 dersten oluşur.
Her Geçişte Gradyan Gerekmez
Gradyanlara yalnızca eğitim sırasında ihtiyaç duyarsınız. Yalnızca tahmin yapmak istediğinizde grafiği izlemek gereksiz iştir; bu nedenle PyTorch bunu kapatmanıza izin verir. 🛑
torch.no_grad ile Tanışın
Kodu bir torch.no_grad() bloğunun içine alırsanız autograd, bu blok içinde kayıt yapmayı durdurur. Grafik oluşturulmaz ve gradyanlar saklanmaz.
with torch.no_grad():
preds = model(x)Grafik Neden Atlanır
Grafiği oluşturmak, hiçbir zaman gerçekleşmeyecek bir geriye yayılım geçişi için her adımı hatırlamak üzere bellek harcar. Çıkarım sırasında bu ek yük tamamen israftır.
Daha Hızlı ve Daha Hafif
no_grad içinde forward geçişiniz daha az bellek kullanır ve biraz daha hızlı çalışır. Büyük modellerde bu, yalnızca tahmin yaparken daha büyük grupları belleğe sığdırmanızı sağlar.
Çıktıların Bağlantısı Kesilir
Blok içinde oluşturulan tensörlerin requires_grad değeri false olur. Bunlar yazdırabileceğiniz, kaydedebileceğiniz veya sorunsuzca NumPy'ye dönüştürebileceğiniz normal sonuçlardır.
Değerlendirme İçin Kullanın
Doğrulama ve test döngüleri her zaman no_grad altında çalışmalıdır. Modeli puanlıyor, eğitmiyorsunuz; bu nedenle gradyanları izlemenin bir anlamı yoktur.
with torch.no_grad():
for x, y in val_loader:
out = model(x)eval Moduyla Birlikte Kullanın
Çıkarım için model.eval() ayarını yapın ve çağrıları birlikte no_grad içine alın. eval, dropout gibi katmanları sabitler; no_grad ise grafiği durdurur. Farklı sorunları çözerler.
Bir Bağlam Yöneticisidir
no_grad yalnızca with bloğunun içindeki kodu etkiler. Bloktan çıktığınızda autograd, bir sonraki eğitim adımınız için izlemeyi otomatik olarak yeniden açar.
Dekoratör Biçimi
Ayrıca tüm bir işlevi @torch.no_grad() ile işaretleyebilirsiniz. Bu işlevin içindeki her tensör işlemi grafik oluşturmadan çalışır.
@torch.no_grad()
def predict(x):
return model(x)Tek Bir Tensörün Bağlantısını Kesin
Tüm bir blok yerine yalnızca bir tensörü grafikten ayırmanız mı gerekiyor? Gradyan geçmişi taşımayan bir kopya elde etmek için üzerinde .detach() çağrısı yapın.
frozen = output.detach()Güvenli ve Yaygın Bir Alışkanlık
Öğrenme yapmadığınız her durumda no_grad kullanın: çıkarım, ölçüm veya çıktıları kaydetme. Bu küçük değişiklik sessizce bellek ve zaman tasarrufu sağlar.
Hızlı Kontrol
Özet
Grafik oluşturmayı atlamak, bellek ve zaman tasarrufu sağlamak için çıkarımı torch.no_grad() içine alın. Eğitim yerine tahmin yaptığınızda bunu model.eval() ile birlikte kullanın. 🚀
Yapay zeka eğitmeniyle Python öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“Çıkarım için torch.no_grad()” dersi ücretsiz mi?
Evet — “Çıkarım için torch.no_grad()” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Deep Learning Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Deep Learning Academy kursu toplamda 4 dersten oluşur.
“Çıkarım için torch.no_grad()” dersinde ne öğreneceğim?
Bellek kazanmak için grafik izlemeyi atlayın. Deep Learning Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Deep Learning Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Deep Learning Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Çıkarım için torch.no_grad()” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Deep Learning Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Deep Learning Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- requires_grad ve Hesaplama Grafiği
- Gradyanları Almak için backward() Çağrısı
- .grad Okuma ve Sıfırlama
- Çıkarım için torch.no_grad()