* Fix returning only 2 values on an early exit.
This fixes a bug
`ValueError: not enough values to unpack (expected 3, got 2)`
* Update train_loop_mixin.py
* Change to return dict
The return value was actually a dict even though that variable is initialized as a list.