Try to add nonlinearities between your layers: out = F.relu(self.fc1(x)). Right now your model is just a linear transformation.
Also after adding the activation functions, you could play around with the learning rate.