Is Keras printing the training loss for the current batch or is the average taken?
The loss in your PyTorch model also seems to go down, but note that you are only printing the loss of the last seen training batch.
The usage of an AverageMeterfrom the ImageNet example 2 might smooth the values out a bit.