This is a relatively big release after v0.0.18.
Breaking changes
- `delu.iter_batches`: now, `shuffle` is a keyword-only argument
- `delu.nn.Lambda`
- now, this module accepts only the functions from the `torch` module or methods of `torch.Tensor`
- now, the passed callable is not accessible as a public attribute
- `delu.random.seed`: the algorithm computing the library- and device-specific seeds changed, so the result can change compared to the previous versions
- In the following functions, the first arguments are now positional-only:
- `delu.to`
- `delu.cat`
- `delu.iter_batches`
- `delu.Timer.format`
- `delu.data.Enumerate`
- `delu.nn.Lambda`
- `delu.random.seed`
- `delu.random.set_state`
New features
- Added `delu.tools` -- a new home for `EarlyStopping`, `Timer` and other general tools.
- Added `delu.nn.NLinear` -- a module representing N linear layers that are applied to N different inputs:
`(*B, *N, D1) -> (*B, *N, D2)`, where `*B` are the batch dimensions.
- Added `delu.nn.named_sequential` -- a shortcut for creating `torch.nn.Sequential` with named modules without `OrderedDict`:
sequential = delu.nn.named_sequential(
('linear1', nn.Linear(10, 20)),
('activation', nn.ReLU()),
('linear2', nn.Linear(20, 1))
)
- `delu.nn.Lambda`: now, the constructor accepts keyword arguments for the callable:
m = delu.nn.Lambda(torch.squeeze, dim=1)
- `delu.random.seed`
- the algorithm computing random seeds for all libraries was improved
- now, `None` is allowed as `base_seed`; in this case, an unpredictable seed generated by OS will be used **and returned**:
truly_random_seed = delu.random.seed(None)
- `delu.random.set_state`: now, omitting the `'torch.cuda'` is allowed to avoid setting the states of CUDA RNGs
Deprecations & Renamings
- `delu.data` was renamed to `delu.utils.data`. The old name is now a deprecated alias.
- `delu.Timer` and `delu.EarlyStopping` were moved to the new `delu.tools` submodule. The old names are now deprecated aliases.
Dependencies
- Now, `torch >=1.8,<3`
Documentation
- Updated logo
- Simplified structure
- Removed the only (and not particularly representative) end-to-end example
Project
- Migrate from sphinx doctest to xdoctest