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

Generator loss

GAN को ट्रेन करने से पहले, आपको जेनरेटर और डिस्क्रिमिनेटर दोनों के लिए लॉस फंक्शन डिफाइन करने होंगे. आप जेनरेटर से शुरू करेंगे.

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

gen_loss() फंक्शन डिफाइन कीजिए जो जेनरेटर का लॉस कैलकुलेट करे. यह चार आर्ग्युमेंट लेता है:

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

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

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

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

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

  • शेप num_images बाई z_dim का रैंडम नॉइज़ जनरेट करें और उसे noise में असाइन करें.
  • जेनरेटर का उपयोग करके noise से फेक इमेज जनरेट करें और उसे fake में असाइन करें.
  • जनरेट की गई फेक इमेज के लिए डिस्क्रिमिनेटर की प्रेडिक्शन लें.
  • डिस्क्रिमिनेटर की प्रेडिक्शंस और उसी शेप वाले ones के टेन्सर पर criterion कॉल करके जेनरेटर का लॉस कंप्यूट करें.

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

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

def gen_loss(gen, disc, criterion, num_images, z_dim):
    # Define random noise
    noise = ____(num_images, z_dim)
    # Generate fake image
    fake = ____
    # Get discriminator's prediction on the fake image
    disc_pred = ____
    # Compute generator loss
    criterion = nn.BCEWithLogitsLoss()
    gen_loss = ____(____, ____)
    return gen_loss
कोड संपादित करें और चलाएँ