I’m not sure what your utility functions are doing exactly, but the code looks fine besides some minor issues.
E.g. you should call the model directly (model(intputs)) instead of its forward method.
If you expect the train loss to be higher than the validation loss, you could try to increase the drop probability of your dropout layers and rerun the experiment.