Releases: abr/keras-lmu
Releases · abr/keras-lmu
Release 0.9.0
Release 0.8.0
Compatible with TensorFlow 2.8 - 2.19
Added
- Added an
input_dparameter toLMUCell. This only needs to be specified whenhidden_cell=Noneandinput_to_hidden=True; in that scenario it is required in order to accurately setLMUCell.output_size. (#56)
Release 0.7.0
Compatible with TensorFlow 2.4 - 2.13
Changed
- Minimum supported Python version is now 3.8 (3.7 reached end of life in June 2023). (#54)
Release 0.6.0
Compatible with TensorFlow 2.4 - 2.11
Changed
LMUFeedforwardcan now be used with unknown sequence lengths, andLMUwill useLMUFeedforwardfor unknown sequence lengths (as long as the other conditions are met, as before). (#52)- Allow
input_to_hidden=Truewithhidden_cell=None. This will act as a skip connection. (#52) - Changed order of LMU states so that the LMU memory state always comes first, and any states from the hidden cell come afterwards. (#52)
Fixed
- Fixed errors when setting non-default dtype on LMU layers. (#52)
Release 0.5.0
Compatible with TensorFlow 2.4 - 2.11
Added
- Layers are registered with the Keras serialization system (no longer need to be passed as
custom_objects). (#49)
Release 0.4.2
Release 0.4.1
Release 0.4.0
Added
- Setting
kernel_initializer=Nonenow removes the dense input kernel. (#40) - The
keras_lmu.LMUFFTlayer now supportsmemory_d > 1.keras_lmu.LMUnow uses this implementation for all values ofmemory_dwhen feedforward conditions are satisfied (no hidden-to-memory or memory-to-memory connections, and the sequence length is notNone). (#40) - Added
trainable_thetaoption, which will allow thethetaparameter to be learned during training. (#41) - Added
discretizeroption, which controls the method used to solve for theAandBLMU matrices. This is mainly useful in combination withtrainable_theta=True, where settingdiscretizer="euler"may improve the training speed (possibly at the cost of some accuracy). (#41) - The
keras_lmu.LMUFFTlayer can now use raw convolution internally (as opposed to FFT-based convolution). The newconv_modeoption exposes this. The newtruncate_iroption allows truncating the impulse response when running with a raw convolution mode, for efficiency. Whether FFT-based or raw convolution is faster depends on the specific model, hardware, and amount of truncation. (#42)
Changed
- The
AandBmatrices are now stored as constants instead of non-trainable variables. This can improve the training/inference speed, but it means that saved weights from previous versions will be incompatible. (#41) - Renamed
keras_lmu.LMUFFTtokeras_lmu.LMUFeedforward. (#42)
Fixed
- Fixed dropout support in TensorFlow 2.6. (#42)
Release 0.3.1
Release 0.3.0
Changed
- Renamed module from
lmutokeras_lmu(so it will now be imported viaimport keras_lmu), renamed package fromlmutokeras-lmu(so it will now be installed viapip install keras-lmu), and changed any references to "NengoLMU" to "KerasLMU" (since this implementation is based in the Keras framework rather than Nengo). In the future thelmunamespace will be used as a meta-package to encapsulate LMU implementations in different frameworks. (#24)