Solved by belhal in post #5 
              
              
                Yes training is happening. 
Copying the array of weights and appending made it work. 
Don’t know why but I guess copy() is always a good friend. 
a  = net.fc1.weight.data.detach().numpy().copy()
all_weights.append(a)