You are detaching the computation graph by using numpy functions for loss:
hist_rGau= np.histogram(Gaussy.squeeze(1).view(-1).detach().numpy(), bins=FFBins,range=[0 ,1])
count_r11 = hist_rGau[0]      
PGAUSSY=count_r11/(count_r11.sum())        
hist_rGAN = np.histogram(fake.squeeze(1).view(-1).detach().numpy(), bins=FFBins,range=[0 ,1])
count_r22 = hist_rGAN[0]       
PGAN=count_r22/(count_r22.sum())
        
loss2=abs(PGAUSSY-PGAN).sum()

If you need to use numpy operations, you would need to implement the backward function manually via a custom autograd.Function 41 or use PyTorch operations.
Double post from:
here 70, here 24, here 22, here 13, here 28.
Please don’t repost the same question in 6 different threads, as this will only waste the time of community members, which might be looking into your issue.