Guanqun_Yang:

def forward(self, x): # x -> (batch_size, 784) x = torch.relu(x) # x -> (batch_size, 10) x = torch.softmax(x, dim=1) return x


You are not using fc1 and fc2 at all.
Your input is passing through relu and softmax and hence no learning
Use fc1 and fc2 in forward function as follows:
 def forward(self, x):
      # x -> (batch_size, 784)
      x = self.fc1(x)
      x = torch.relu(x)
      x = self.fc2(x)
      # x -> (batch_size, 10)
      x = torch.softmax(x, dim=1)
      return x

Also, you need to flatten the tensor before feeding it to Net (I will leave that as an exercise )