Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
This project adheres to Semantic Versioning, with the exception that v0.X updates include backwards-incompatible API changes. From v1.0.0 and on, the project will adherence strictly to Semantic Versioning.
Unpublished¶
[1.2.4] - 2025-03-15¶
Fixed¶
Multilayer transformers when num_layers>=3.
Added¶
Tests up to python 3.12.
[1.2.3] - 2023-06-16¶
Fixed¶
Ensure state_index remains on the same device after clean_state.
[1.2.2] - 2023-05-24¶
Fixed¶
Option to use strings to specify transformer activation.
[1.2.1] - 2023-03-24¶
### Added
Onnx as dev requirement.
Changed¶
Allow torch>=2.0.
[1.2.0] - 2023-03-16¶
### Added
Skipmodule.“leading” mode in
Residual.
[1.1.3] - 2023-03-15¶
### Added
Description of state handling to README.
Fixed¶
Documentation formatting for
co.Identity()examples.Horovod check for newer pytorch lightning versions.
[1.1.2] - 2023-01-13¶
### Added
query_indexargument toSingleOutputTransformerEncoderLayer.
Fixed¶
Residualcentred residual andDelayauto_delay forward_step.
[1.1.1] - 2023-01-10¶
### Added
Support for
GroupNormandInstanceNorm
[1.1.0] - 2022-12-19¶
### Added
appendfunction toco.Sequential.Production-ready docstrings for public functions.
reduce_max to
Reduce.
### Changed
Rename
UnitytoIdentityto followtorch.nn.Major overhaul of README, improving descriptions and adding benchmark.
Major overhaul of docs, improving descriptions and adding benchmark.
MHA warnings to only log once.
Removed¶
Unused parameters
batch_firstandbidirectionalfor RNN, GRU, and LSTM.
[1.0.4] - 2022-12-07¶
Fixed¶
co.Conditionalonnx support for single-option config.
[1.0.3] - 2022-12-07¶
Fixed¶
co.Conditionalonnx support.
[1.0.2] - 2022-12-06¶
Fixed¶
co.Convonnx export for kernel_size=1.
[1.0.1] - 2022-12-02¶
Added¶
Ability to access onnx from root, i.e.
co.onnx.
[1.0.0] - 2022-12-02¶
Added¶
ONNX compatibility to all library modules!
co.onnx.exportfunction mirroringtorch.onnx.export.purely functional
_forward_stepfunction to all modules._state_shapeand_dynamic_state_indsproperties to modules.Add about info to package root.
Changed¶
Change call_mode internally from enum to tensor.
Change internal state_indexes to tensors.
Change stride to tuple.
Change padding to tuple.
### Fixed
Fix assertion bug in co.Lambda.
### Removed
TensorPlaceholder in favour of
None.
[0.17.1] - 2022-06-02¶
Added¶
Missing part on Continual Transformers in README.
Removed¶
Conv cpp impl.
[0.17.0] - 2022-05-12¶
Added¶
Citations for Continual Inference lib paper.
Docs.
Automatic conversion for RNN modules.
Continual Transformer modules, including:
RecyclingPositionalEncodingRetroactiveMultiheadAttentionSingleOutputMultiheadAttentionSingleOutputTransformerEncoderLayerRetroactiveTransformerEncoderLayerTransformerEncoderLayerFactoryTransformerEncoder
[0.16.0] - 2022-04-04¶
### Added
“lagging” option for shrink in
co.Delayandco.Residual.co.RNN.co.LSTM.co.GRU.
Changed¶
phantom_paddingrenamed toresidual_shrink.
[0.15.6] - 2022-03-18¶
Fixed¶
Missing cpp file in package.
[0.15.5] - 2022-03-05¶
Added¶
CoConv step impl in C++.
[0.15.4] - 2022-01-28¶
Fixed¶
FLOPs module registration compatibility with ptflops >=v0.6.8.
[0.15.3] - 2021-12-13¶
Added¶
Call-mode specific functions in
co.Lambda
[0.15.2] - 2021-12-11¶
Added¶
Support for functor in
co.Lambda
Removed¶
nn.LayerNormfrom automatically convertible modules
[0.15.1] - 2021-12-10¶
Added¶
nn.LayerNormto automatically convertible modules
[0.15.0] - 2021-10-29¶
Added¶
ParallelDispatchmodule.Conditionalpredicate print in__repr__.
Fixed¶
Sequential
paddingcomputation.Lambda__repr__function prints.
Removed¶
CI testing for python v3.6.
[0.14.0] - 2021-09-20¶
Added¶
Added
phantom_paddingtoResidual.Added
receptive_fieldproperty.Added
Reshapemodule.
Changed¶
Rename
forward_shrinkargument toauto_shrinkinDelay.Torch requirement to v1.9.
Replace
Lambdaunsqueeze_step with takes_time and new default to False.
Fixed¶
paddingproperty in sequence.delayproperty in sequence.strictmode inload_state_dict.
Removed¶
Assertion error in
BroadcastReducefor modules with different delays.
[0.13.0] - 2021-09-14¶
Added¶
Add
forward_shrinkoption toDelayandResidual.
[0.12.0] - 2021-09-14¶
Added¶
Add
Constant.Add
Zero.Add
One.
[0.11.4] - 2021-09-08¶
Fixed¶
co.ConvXdcuda compatibility.
[0.11.3] - 2021-09-08¶
Added¶
Add
flatten_state_dictstate variable.
Removed¶
Debug message for Convolutions with padding.
[0.11.2] - 2021-09-08¶
Fixed¶
call_modeforLinear.
[0.11.1] - 2021-09-06¶
Added¶
Add
call_mode.Add
warm_up.
Changed¶
Container implementations to use
__call__with alternating call_modes. This change was necessary to properly trigger the torch hooks needed inptflops.
Fixed¶
ptflopscompatibility.
[0.11.0] - 2021-08-31¶
Added¶
co.Linearmodule.Improved repr in
co.Lambda.Option to skip unsqueeze in
co.Lambda.forward_step.
[0.10.0] - 2021-08-27¶
Changed¶
Renamed
co.Paralleltoco.BroadcastReduce.
Added¶
co.Broadcastmodule.new
co.Parallelmodule.co.Reducemodule.Automatic inference of
co.Broadcast.num_streamsinco.Sequential.
[0.9.0] - 2021-08-26¶
Added¶
co.Lambdamodule.co.Addmodule.co.Multiplymodule.co.Unitymodule.co.Conditionalmodule.
[0.8.1] - 2021-08-26¶
Fixed¶
Bug in
forward_stepping.Bug in
clean_state.
[0.8.0] - 2021-08-24¶
Fixed¶
Bugs in
forward_step(s)withupdate_state=False.
Changed¶
forward_stepsinterface to always includepad_endargument.Name of “interface.py” to “module.py”.
Implementations of
forward_step(s)to be consolidated in CoModule.
Removed¶
Paddedinterface.
[0.7.0] - 2021-08-24¶
Added¶
Independent state_dict and load_state_dict functions.
Added nonempty check for aggregation functions in Parallel.
update_stateargument to allforward_step(s)methods.Additional tests for edge-cases
Changed¶
Changed default pad_end value to False.
Fixed¶
Continual interface and conversion to support both class and module.
Replicate padding in
co._ConvNd
[0.6.1] - 2021-08-23¶
Changed¶
co.Residualmodules to be unnamed. This allows the module state dicts to be flattened.
[0.6.0] - 2021-08-23¶
Added¶
Flattened state dict export and loading via a
flattenargument. This feature improves interoperability complex modules, that were not originally constructed with theco.Sequentialandco.Parallelbuilding blocks.Context manager for triggering flattened state_dict export and loading.
[0.5.0] - 2021-08-20¶
Added¶
Support for zero-delay in
co.DelaySupport for broadcasting in
co.ParallelMul (hadamard product) aggregation in
co.ParallelExample of Squeeze and Excitation block
Changed¶
co._PoolNdattribute naming: “temporal_*” removed as prefix for kernel_size, stride, dilation, and padding.
[0.4.0] - 2021-08-19¶
Added¶
co.Delayhandling for padding.Handling of initialization and strides in containers
Changed¶
co.Convbuild_frombehavior to not change dilation and stride. Argument overload supported instead.pad_startandpad_endargs to convolution and pooling modulesforward_steps.Behavior of modules while they initialize. Now, a TensorPlaceholder is passed for initializing steps.
Removed¶
Automatic unsqueeze in pooling.
[0.3.1] - 2021-08-18¶
Added¶
Support for dropout.
[0.3.0] - 2021-08-18¶
Added¶
Support for dilation and stride in pooling.
Changed¶
Pooling API to match torch.nn better.
_ConvCoNd.forward_stepsdoesn’t invokeclean_stateanymore.
[0.2.2] - 2021-08-17¶
Added¶
Automatic conversion of batch normalization and activation functions.
Fixed¶
Separate dilation and stride in pool.
Changed¶
Conv forward to use temporal padding like (like nn.Conv).
Removed¶
co.BatchNorm2d
[0.2.1] - 2021-08-17¶
Changed¶
Renamed
unsqueezedtoforward_stepping.
Removed¶
Unused utility
Zeros
[0.2.0] - 2021-08-16¶
Changed¶
Naming to match
torch.nn. This lets the continual modules be used as drop-in replacements fortorch.nnmodules.Renamed
forward_regular_unrolledtoforward,forward_regulartoforward_steps, andforwardforforward_step.Renamed
from_regulartobuild_from.Renamed
continualtounsqueezed.
Added¶
Sequentialwrapper for sequential application of modulesParallelwrapper for parallel application and aggregation of inputsResidualwrapper for adding a unity residual to a modulecontinualconversion functionregisterfunction for 3rd party modules to register their conversionAdditional tests
[0.1.2] - 2021-08-1¶
Added¶
Pooling modules:
MaxPool1d,AvgPool3d,MaxPool3d,AdaptiveAvgPool3d,AdaptiveMaxPool3d.
[0.1.1] - 2021-08-10¶
Added¶
Updated README.
[0.1.0] - 2021-08-10¶
Added¶
Initial publicly available implementation of the library.