Solved by vmirly1 in post #2 
              
              
                Yes, the backpropagation works for both encoder and decoder. You can test that by looking at the list of paramaters in unsupervised_model.parameters(): 
p = list(unsupervised_model.parameters())
for w in p:
    print(w.shape)

which will print the following: 
torch.Size([136, 136])
torch.Size([136])…