--- title: Version 0.16 --- :::important **Trains** is now **ClearML**. ::: ### Trains 0.16.4 **Features** - Add Hydra support (GitHub trains Issue 219). - Add cifar ignite example (GitHub trains Issue 237). - Add auto extraction of `tar.gz` files when using `StorageManager` (GitHub trains Issue 237). - Add `Task.init()` argument `auto_connect_streams` controlling stdout / stderr / logging capture (GitHub trains Issue 181). - Add carriage return flush support using the `sdk.development.worker.console_cr_flush_period` configuration setting (GitHub trains Issue 181). - Add `Task.create_function_task()` to allow creating a new task, using a function and arguments, to be executed remotely (GitHub trains Issue 230). - Allow disabling SSL certificates verification using `Task.setup_upload()` argument `verify` or AWS S3 bucket configuration `verify` property (GitHub trains Issue 256). - Add `StorageManager.get_files_server()`. - Add `Task.get_project_id()` using project name. - Add `project_name` argument to `Task.set_project()`. - Add `Task.connect()` support for class / instance objects. - Add `Task get_configuration_object()` and `Task.set_configuration_object()` for easier automation. - Improve Auto-Scaler - allow extra configurations, key name and security group are now optional, defaults using empty strings. - Use a built-in matplotlib convertor. - Add reporting text as debug sample example. **Bug Fixes** - Fix Optuna HPO parameter serializing (GitHub trains Issue 254). - Fix connect dictionary `''` cast to `None` (GitHub trains Issue 258). - Fix lightgbm binding keyword argument issue (GitHub trains Issue 251). - Fix artifact preview if artifact body is remote URI (GitHub trains Issue 239). - Fix infinite recursion in `StorageManager` upload (GitHub trains Issue 253). - Fix keras reusing model object only if the filename is the same (GitHub trains Issue 252). - Fix running remotely with no configuration should not crash but output a warning (GitHub trains Issue 243). - Fix matplotlib 3.3.3 support: - Fix global figure enumeration. - Fix binding without a title reported a single plot (`untitled 00`) instead of increasing the counter. - Fix Python 2.7 / 3.5 support. - Fix quote issue when reporting debug images. - Fix replace quote safe characters in upload file to include `;=@$`. - Fix `at_exit` called from another process should be ignored. - Fix `Task.set_tags()` for completed / published tasks. - Fix `Task.add_tags()` not working when running remotely. - Fix `Task.set_user_properties()` docstring and interface. - Fix preview with JSON (dict) artifacts did not store the artifact. - Fix `Logger.report_text()` on task created using `Task.create()` was not supported. - Fix initialization for torch: only call torch `get_worker_info` if torch was loaded. - Fix flush (wait) on auxiliary task (obtained using` Task.get_task()`) should wait on all upload events. - Fix server was not updated with the defaults from the code when running remotely and configuration section is missing. - Fix connect dict containing `None` default values, blocked the remote execution from passing string instead of None. - Fix `Task.upload_artifact()` argument `delete_after_upload=True` used in conjunction with `wait_for_upload=True` was not supported. ### Trains 0.16.3 **Features** * Add LightGBM support. * Add initial Hydra support (GitHub trains Issue 219). * Add synchronous support for `Task.upload_artifact()` (GitHub trains Issue 231). * Add `sdk.development.store_code_diff_from_remote` (default `false`) to store diff from remote HEAD instead of local HEAD (GitHub trains Issue 222). * Add `sdk.development.detect_with_conda_freeze` (default `true`) for full conda freeze (requires trains-agent >= 16.2). * Add user properties support in Task object. * Add `Logger.report_table()` support for table as list of lists. * Add support to split DAG and Table in pipeline DAG plot. Pipeline DAG single nodes are now round circles below the DAG graph.. * Add Pipeline / Optimization can be attached to any Task (not just the current task). * Add `force_download` flag to `StorageManager.get_local_copy()`. * Add control over the artifact preview using `Task.upload_artifact()` `preview` argument. * Add `Logger.report_matplotlib_figure()` with examples. * Add `Task.set_task_type()`. * Improve AWS auto-scaler: * Add key pair and security groups support. * Add multi-line support for both extra bash script and extra `trains.conf` data. * Update examples. **Bug Fixes** * Fix `Task.update_output_model()` wrong argument order (GitHub trains Issue 220). * Fix initializing task on argparse parse in remote mode. Do not call `Task.init()` to avoid auto connect, use `Task.get_task()` instead. * Fix detected task cwd outside of repository root folder. * Fix `Task.connect(dict)` to place non-existing entries on the section name instead of General. * Fix `Task.clone()` support for trains-server < 0.16. * Fix `StorageManager` cache extract zipped artifacts. Use modified time instead of access time for cached files. * Fix diff command output was stripped. * Make sure local packages with multi-files are marked as `package`. * Fix `Task.set_base_docker()` should be skipped when running remotely. * Fix ArgParser binding handling of string argument with boolean default value (affects PyTorch Lightning integration). * When using `detect_with_pip_freeze` make sure that `package @ file://` lines are replaced with `package==x.y.z` as local file will probably not be available. * Fix git packages to new pip standard `package @ git+`. * Improve conda package naming `_` and `-` support. * Do not add specific setuptools version to requirements (pip can't install it anyway). * Fix image URL quoting when uploading from a file path. ### Trains 0.16.2 **Features** * Add `Task.set_resource_monitor_iteration_timeout()` to set ResourceMonitor iteration wait duration timeout (GitHub trains Issue 208). * Add PyTorch Lightning save/restore model binding (GitHub trains Issue 212). * Add `git diff` for repository submodule (requires git 2.14 or above). * Add `TrainsJob.is_completed()` and `TrainsJob.is_aborted()`. * Add `Task.logger` property. * Add Pipeline Controller automation and example (see [here](https://github.com/allegroai/clearml/blob/master/examples/pipeline/pipeline_from_tasks.py)). * Add improved trace filtering capabilities in `trains.debugging.trace.trace_trains()`. * Add default help per argument (if not provided) in ArgParser binding. * Deprecate `Task.reporter`. * Update PyTorch example. * Remove warning on skipped auto-magic model logging (GitHub trains Issue 206). * Support Keras restructuring for Network, Model and Sequential. * Update autokeras requirements according to [https://github.com/keras-team/autokeras#installation](https://github.com/keras-team/autokeras#installation). **Bug Fixes** * Fix joblib auto logging models failing on compressed streams (GitHub trains Issue 203). * Fix sending empty reports (GitHub trains Issue 205). * Fix scatter2d sub-sampling and rounding. * Fix plots reporting: * `NaN` representation (matplotlib conversion). * Limit the number of digits in a plot to reduce plot size (using `sdk.metrics.plot_max_num_digits` configuration value). * Fix `Task.wait_for_status()` to reload after it ends. * Fix thread wait Ctrl-C interrupt did not exit process. * Improve Windows support for installed packages analysis. * Fix auto model logging using relative path. * Fix Hyperparameter Optimization example. * Fix `Task.clone()` when working with TrainsServer < 0.16.0. * Fix pandas artifact handling. * Avoid adding `unnamed:0` column. * Return original pandas object. * Fix `TrainsJob` hyper-params overriding order was not guaranteed. * Fix ArgParse auto-connect to support default function type. ### Trains 0.16.1 **Features** * Enhance HyperParameter optimizer. **Bug Fixes** * Fix typing dependency for `Python<3.5` ([GitHub trains Issue 184](https://github.com/allegroai/trains/issues/184)). * Fix git+https requirements handling, resolve top_level.txt package name (kerastuner from git was not detected). * Fix `Task.get_reported_console_output()` for new Trains Server API v2.9. * Fix cache handling for different partitions / drives / devices. * Disable offline mode when running remotely (i.e. executed by Trains Agent). * Fix artifact upload to only use file stream when not uploading a locally stored file (multipart upload is not supported on stream upload) (GitHub trains Issue 189). * Fix double-escaped model design text when connecting OutputModel. ### Trains 0.16.0 **Features** * Add continuing of previously executed experiments. Add `Task.init()` argument `continue_last_task` to continue a previously used Task ([GitHub Issue #160](https://github.com/allegroai/trains/issues/160)). * Allow Task editing / creation from code. `Task.export_task/import_task/update_task()` ([GitHub Issue #128](https://github.com/allegroai/trains/issues/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 uploaded as artifacts, `task.upload_artifact()` argument `auto_pickle=True` ([GitHub Issue #153](https://github.com/allegroai/trains/issues/153)). * Add multiple sections / groups support for Task hyperparameters, 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 hyperparameter optimization controller. `OptimizerOptuna` is now the default optimizer. * Add initial Keras-Tuner support ([GitHub Issue keras-team/keras-tuner #334](https://github.com/keras-team/keras-tuner/issues/334)). * Add automatic FastAI logging. It is disabled if Tensorboard is loaded (assuming TensorBoardLogger 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`) ([GitHub Issue #165](https://github.com/allegroai/trains/issues/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 ([GitHub Issue #157](https://github.com/allegroai/trains/issues/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 ([GitHub Issue #150](https://github.com/allegroai/trains/issues/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 ([GitHub Issue #152](https://github.com/allegroai/trains/issues/152)). * Fix and enhance GPU monitoring: * Fix GPU stats on Windows machines ([GitHub Issue #177](https://github.com/allegroai/trains/issues/177)). * More robust GPU monitoring ([GitHub Issue #170](https://github.com/allegroai/trains/issues/170)). * Fix filename too long bug ([GitHub trains-server Issue #49](https://github.com/allegroai/trains-server/issues/49)). * Fix TensorFlow image logging to allow images with no width / height / color metadata ([GitHub Issue #182](https://github.com/allegroai/trains/issues/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.