Breaking Changes
* `helios.data.functional.load_image` no longer uses PIL as its back-end and is now using OpenCV. If you're using the function with default arguments, no changes need to be made. However if you're using it as `load_image(path, "RGB")`, then you should change to `load_image(path, cv2.IMREAD_COLOR)` to get the equivalent behaviour. If you require PIL, you can use `helios.data.functional.load_image_pil`.
* Helios now does exception handling internally. As a result, any exception that is *not* registered in the training or testing exception lists will be handled internally and swallowed by Helios.
Feature Changes
* Replaced PIL in `helios.data.functional.load_image` with OpenCV to allow more flexibility in what types of images are loaded. In order to maintain compatibility with PyTorch, `helios.data.functional.load_image_pil` has been added so images can be load through PIL.
* `ToImageTensor` is now type-hinted correctly with all the possible types it accepts.
* Exception handling has been improved. The new system correctly logs exceptions in both single and distributed training cases. The side-effect of this is that Helios will now swallow exceptions unless explicitly told otherwise. See the documentation for the `Trainer.fit` and `Trainer.test` functions for more details.
* The Optuna plug-in now has a system to stop optimisation whenever the given number of trials has been reached. This ensures that the number of trials is reached regardless of the number of runs it takes to get there.
Bug Fixes
* The `Model._val_scores` and `Model._test_scores` tables now accept any type as their values.
Full Changelog
https://github.com/marovira/helios-ml/compare/1.1.0...1.2.0