ऑप्टिमाइज़र, ट्रेनिंग, और इवैल्यूएशन

इंटरमीडिएट Deep Learning with PyTorch

Michal Oleszak

Machine Learning Engineer

ट्रेनिंग लूप

import torch.nn as nn
import torch.optim as optim

criterion = nn.BCELoss()
optimizer = optim.SGD(net.parameters(), lr=0.01)


for epoch in range(1000): for features, labels in dataloader_train:
optimizer.zero_grad()
outputs = net(features)
loss = criterion( outputs, labels.view(-1, 1) )
loss.backward()
optimizer.step()
  • लॉस फंक्शन और ऑप्टिमाइज़र परिभाषित करें
    • बाइनरी क्लासिफिकेशन के लिए BCELoss
    • SGD ऑप्टिमाइज़र
  • एपॉक्स और ट्रेनिंग बैचों पर इटरेट करें
  • ग्रेडिएंट्स साफ करें
  • फॉरवर्ड पास: मॉडल के आउटपुट लें
  • लॉस निकालें
  • ग्रेडिएंट्स निकालें
  • ऑप्टिमाइज़र स्टेप: पैरामीटर्स अपडेट करें
इंटरमीडिएट Deep Learning with PyTorch

ऑप्टिमाइज़र कैसे काम करता है

 

लंबाई 2 के दो वेक्टर: एक में पैरामीटर मान (1 और 0.5), दूसरे में ग्रेडिएंट्स (0.9 और -0.2).

इंटरमीडिएट Deep Learning with PyTorch

ऑप्टिमाइज़र कैसे काम करता है

 

तीर दिखाते हैं कि पैरामीटर और ग्रेडिएंट्स वाले दोनों वेक्टर ऑप्टिमाइज़र (टार्गेट बोर्ड जैसा) में कैसे जाते हैं.

इंटरमीडिएट Deep Learning with PyTorch

ऑप्टिमाइज़र कैसे काम करता है

 

ऑप्टिमाइज़र से एक तीर दो पैरामीटर अपडेट वाले वेक्टर की ओर इशारा करता है: -0.5 और 0.5.

इंटरमीडिएट Deep Learning with PyTorch

ऑप्टिमाइज़र कैसे काम करता है

 

पैरामीटर अपडेट्स से तीर अपडेटेड पैरामीटर मानों की ओर इशारा करता है: 0.5 और 1.0

इंटरमीडिएट Deep Learning with PyTorch

ऑप्टिमाइज़र कैसे काम करता है

 

पैरामीटर अपडेट्स से तीर अपडेटेड पैरामीटर मानों की ओर इशारा करता है: 0.5 और 1.0

इंटरमीडिएट Deep Learning with PyTorch

स्टोकेस्टिक ग्रेडिएंट डीसेंट (SGD)

optimizer = optim.SGD(net.parameters(), lr=0.01)
  • अपडेट लर्निंग रेट पर निर्भर करता है
  • बेसिक मॉडलों के लिए सरल और प्रभावी
  • व्यवहार में कम इस्तेमाल होता है
इंटरमीडिएट Deep Learning with PyTorch

एडैप्टिव ग्रेडिएंट (Adagrad)

optimizer = optim.Adagrad(net.parameters(), lr=0.01)
  • हर पैरामीटर के लिए लर्निंग रेट एडैप्ट करता है
  • स्पार्स डेटा के लिए अच्छा
  • लर्निंग रेट बहुत तेज़ी से घटा सकता है
इंटरमीडिएट Deep Learning with PyTorch

रूट मीन स्क्वेयर प्रोपेगेशन (RMSprop)

optimizer = optim.RMSprop(net.parameters(), lr=0.01)
  • हर पैरामीटर का अपडेट उसके पिछले ग्रेडिएंट्स के आकार पर आधारित
इंटरमीडिएट Deep Learning with PyTorch

एडैप्टिव मोमेंट एस्टीमेशन (Adam)

optimizer = optim.Adam(net.parameters(), lr=0.01)
  • सबसे बहुपयोगी और व्यापक रूप से इस्तेमाल होने वाला
  • RMSprop + ग्रेडिएंट मोमेंटम
  • अक्सर डिफ़ॉल्ट ऑप्टिमाइज़र के रूप में इस्तेमाल
इंटरमीडिएट Deep Learning with PyTorch

मॉडल इवैल्यूएशन

from torchmetrics import Accuracy

acc = Accuracy(task="binary")


net.eval() with torch.no_grad(): for features, labels in dataloader_test:
outputs = net(features)
preds = (outputs >= 0.5).float()
acc(preds, labels.view(-1, 1))
accuracy = acc.compute() print(f"Accuracy: {accuracy}")
Accuracy: 0.6759443283081055
  • एक्यूरेसी मेट्रिक सेट करें
  • मॉडल को eval मोड में रखें और टेस्ट बैचों पर बिना ग्रेडिएंट्स इटरेट करें
  • डेटा मॉडल को दें और प्रॉबेबिलिटीज लें
  • प्रेडिक्टेड लेबल्स निकालें
  • एक्यूरेसी मेट्रिक अपडेट करें
इंटरमीडिएट Deep Learning with PyTorch

अभ्यास करते हैं!

इंटरमीडिएट Deep Learning with PyTorch

Preparing Video For Download...