शुरू करेंमुफ़्त में शुरू करें

डिस्क्रिमिनेटर लॉस

अब डिस्क्रिमिनेटर के लिए लॉस परिभाषित करने का समय है. याद रखें, डिस्क्रिमिनेटर का काम इमेज को रियल या फेक के रूप में क्लासिफाई करना है. इसलिए, अगर वह जेनरेटर के आउटपुट को रियल (लेबल 1) या रियल इमेज को फेक (लेबल 0) क्लासिफाई करता है, तो जेनरेटर को लॉस होता है.

disc_loss() फंक्शन परिभाषित करें जो डिस्क्रिमिनेटर का लॉस गणना करता है. यह पाँच आर्ग्युमेंट लेता है:

  • gen, जेनरेटर मॉडल
  • disc, डिस्क्रिमिनेटर मॉडल
  • real, ट्रेनिंग डेटा से रियल इमेज का सैंपल
  • num_images, बैच में इमेज की संख्या
  • z_dim, इनपुट रैंडम नॉइज़ का साइज

यह अभ्यास पाठ्यक्रम का हिस्सा है

PyTorch के साथ इमेज के लिए डीप लर्निंग

पाठ्यक्रम देखें

अभ्यास निर्देश

  • डिस्क्रिमिनेटर का उपयोग करके fake इमेज को क्लासिफाई करें और प्रेडिक्शन को disc_pred_fake में असाइन करें.
  • फेक लॉस घटक निकालने के लिए फेक इमेज के लिए डिस्क्रिमिनेटर के प्रेडिक्शन और उसी shape वाले zeros टेन्सर पर criterion कॉल करें.
  • डिस्क्रिमिनेटर का उपयोग करके real इमेज को क्लासिफाई करें और प्रेडिक्शन को disc_pred_real में असाइन करें.
  • रियल लॉस घटक निकालने के लिए रियल इमेज के लिए डिस्क्रिमिनेटर के प्रेडिक्शन और उसी shape वाले ones टेन्सर पर criterion कॉल करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

def disc_loss(gen, disc, real, num_images, z_dim):
    criterion = nn.BCEWithLogitsLoss()
    noise = torch.randn(num_images, z_dim)
    fake = gen(noise)
    # Get discriminator's predictions for fake images
    disc_pred_fake = ____
    # Calculate the fake loss component
    fake_loss = ____
    # Get discriminator's predictions for real images
    disc_pred_real = ____
    # Calculate the real loss component
    real_loss = ____
    disc_loss = (real_loss + fake_loss) / 2
    return disc_loss
कोड संपादित करें और चलाएँ