Features
- Add continuing of previously executed experiments. Add `Task.init()` argument `continue_last_task` to continue a previously used Task 160
- Allow Task editing/creation from code. `Task.export_task/import_task/update_task()` 128
- Add offline mode. Use `Task.set_offline()` and `Task.import_offline_session()`
- Support setting offline mode via `TRAINS_OFFLINE_MODE=1` environment variable
- Support setting offline API version via `TRAINS_OFFLINE_MODE=2.9` environment variable
- Automatically pickle all objects when uploading as artifacts, `task.upload_artifact()` argument `auto_pickle=True` 153
- Add multiple sections/groups support for Task hyper-parameters using `Task.connect()`
- Add multiple configurations (files) using `Task.connect_configuration`
- Allow enabling OS environment logging using the `sdk.development.log_os_environments` configuration parameter (complements the `TRAINS_LOG_ENVIRONMENT` environment variable)
- Add Optuna support for hyper-parameter optimization controller. `OptimizerOptuna` is now the default optimizer.
- Add initial Keras-Tuner support (keras-team/keras-tuner334)
- Add automatic FastAI logging. It is disabled if tensorboard is loaded (assuming TensorBoradLogger will be used)
- Support Tensorboard text logging (`add_text()`) as debug samples (`.txt` files), instead of as console output
- Allow for more standard confusion matrix reporting. `Logger.report_confusion_matrix()` argument `yaxis_reversed` (flips the confusion matrix if `True`, default `False`) 165
- Add support for Trains Server 0.16.0 (API v2.9 support)
- Allow disabling Trains update message from the log using the `TRAINS_SUPPRESS_UPDATE_MESSAGE` environment variable 157
- Add AWS EC2 Auto-Scaler service wizard and Service
- Improved and updated examples
- Add Keras Tuner CIFAR10 example
- Add FastAI example
- Update PyTorch Jupyter notebook examples 150
- Support global requirements detection using `pip freeze` (set `sdk.development.detect_with_pip_freeze` configuration in `trains.conf`)
- Add `Task.get_projects()` to get all projects in the system, sorted by last update time
Bug Fixes
- Fix UTC to time stamp in comment 152
- Fix and enhance GPU monitoring
- Fix GPU stats on Windows machines 177
- More robust GPU monitoring 170
- Fix filename too long bug https://github.com/allegroai/trains-server/issues/49
- Fix TensorFlow image logging to allow images with no width/height/color metadata 182
- Fix multiprocessing Pool throw exception in pool hangs execution. Call original signal handler and re-flush `stdout`
- Fix `plotly` support for `matplotlib` 3.3
- Add Python 2.7 support for `get_current_thread_id()`
- Update examples requirements
- Fix and improve signal handling
- Fix Tensorboard 2D convolution histogram, improve histogram accuracy on very small histograms
- Fix auto logging multiple argparse calls before `Task.init()`
- Limit experiment Git diff logging to 500Kb. If larger than 500Kb, diff section will contain a warning and entire diff will be uploaded as an artifact named `auxiliary_git_dif`
- Fix requirements detection
- Fix Trains installed from `git+`
- Fix when Trains is not directly imported
- Fix multiple `-e` packages were not detected (only the first one)
- Fix running with Trains in `PYTHONPATH` resulted in double entry of trains
- Fix `Task.set_base_docker()` on main task to do nothing when running remotely