Version 0.13.0
The new skorch release is here and it has some changes that will be exiting for some users.
- First of all, you may have heard of the PyTorch 2.0 release, which includes the option to compile the PyTorch module for better runtime performance. This skorch release allows you to pass
compile=True
when initializing the net to enable compilation. - Support for training on multiple GPUs with the help of the
accelerate
package has been improved by fixing some bugs and providing a dedicated history class. Our documentation contains more information on what to consider when training on multiple GPUs. - If you have ever been frustrated with your neural net not training properly, you know how hard it can be to discover the underlying issue. Using the new
SkorchDoctor
class will simplify the diagnosis of underlying issues. Take a look at the accompanying notebook.
Apart from that, a few bugs have been fixed and the included notebooks have been updated to properly install requirements on Google Colab.
We are grateful for external contributors, many thanks to:
- Kshiteej K (@kshitij12345)
- Muhammad Abdullah (@abdulasiraj)
- Royi (@RoyiAvital)
- Sawradip Saha (@sawradip)
- y10ab1 (@y10ab1)
Find below the list of all changes since v0.12.1 below:
Added
- Add support for compiled PyTorch modules using the
torch.compile
function, introduced in PyTorch 2.0 release, which can greatly improve performance on new GPU architectures; to use it, initialize your net with thecompile=True
argument, further compilation arguments can be specified using the dunder notation, e.g.compile__dynamic=True
- Add a class
DistributedHistory
which should be used when training in a multi GPU setting (#955) SkorchDoctor
: A helper class that assists in understanding and debugging the neural net training, see this notebook (#912)- When using
AccelerateMixin
, it is now possible to prevent unwrapping of the modules by settingunwrap_after_train=True
(#963)
Fixed
- Fixed install command to work with recent changes in Google Colab (#928)
- Fixed a couple of bugs related to using non-default modules and criteria (#927)
- Fixed a bug when using
AccelerateMixin
in a multi-GPU setup (#947) _get_param_names
returns a list instead of a generator so that subsequent error messages return useful information instead of a generatorrepr
string (#925)- Fixed a bug that caused modules to not be sufficiently unwrapped at the end of training when using
AccelerateMixin
, which could prevent them from being pickleable (#963)