Enhancements and bug-fixes
This release includes the following enhancements and bug fixes:
- Adds `create_distributed_subset_indices` to efficiently scatter datasets across distributed nodes.
- Adds `ppe.nn.Ensure` module to assert shape or dtypes in PyTorch code.
- Reduces the snapshot size when using `append=True` (output logs in JSON Lines or YAML) in LogReport.
- Makes `Trainer` and `Evaluator` public APIs so that users can add type annotations to user-defined `Logic` and `Handler` classes with these classes.
- Deprecates `async` option from the trainer and introduces a `DeferredResult` API instead.
- Stores `time_summary` in TLS to avoid bugs related to multiprocessing.
Backward-incompatible changes
- Process-wide `TimeSummary` singleton instance (`ppe.profiler.time_summary`) has been removed as it was not thread-safe and causing issues on multiprocessing/threading. In this release, you can obtain a thread-local `TimeSummary` instance using `ppe.profiler.get_time_summary()`.
See the list of [merged pull-requests](https://github.com/pfnet/pytorch-pfn-extras/pulls?q=is%3Apr+is%3Aclosed+milestone%3Av0.5.2) for the details.