The loss changes for random input data using your code snippet:
train_data = torch.randn(64, 6)
train_out = torch.empty(64, 17).uniform_(0, 1)

so I would recommend to play around with some hyperparameters, such as the learning rate.
That being said, I’m not familiar with your use case, but a softmax output in L1Loss doesn’t seem to be the usual use case.
If you are dealing with a multi class classification use case, I would recommend to try out nn.CrossEntropyLoss and pass the raw logits to it.