Great. So during training G, If i want to update G network only and fed forward data to D network, I still need to set  param.requires_grad = False. Am I right?
Note that, this is different with the above case, in which during training G, I also want to get a prediction from D network. The code like
for param in D.parameters():
             param.requires_grad = False
        netG.zero_grad()       
        output = netD(fake)
        output2= netG(fake) #one more here
        errG = criterion(output, label)
        errD = criterion(output2, label)
        errG.backward()
        optimizerG.step()