frugally-deep v0.20.0 Release Notes
Release Date: 2026-05-03 // about 1 month ago-
๐ Minor release adding broad new Keras 3 layer support (#465).
Recurrent layers (restored after the Keras 3 weight-format change broke the previous implementation, plus newly added):
- ๐
LSTM,GRU,SimpleRNN,Bidirectional(allmerge_modevalues) ConvLSTM1D,ConvLSTM2D,ConvLSTM3DRNNwrappingLSTMCell/GRUCell/SimpleRNNCell/StackedRNNCells
Attention / dense:
- ๐
EinsumDense(generic einsum interpreter; covers transformer-style projections) GroupedQueryAttention(with optionaluse_gate=True)
Pooling / convolution:
AdaptiveAveragePooling1D/2D/3D,AdaptiveMaxPooling1D/2D/3DDepthwiseConv1D
Normalization:
RMSNormalizationGroupNormalization
Preprocessing:
Discretization,IntegerLookupMasking(passthrough)- ๐ Many training-only image augmentation layers as identity passthroughs (
RandomBrightness,RandomFlip,RandomCrop,RandomContrast,RandomRotation,RandomTranslation,RandomZoom,RandomHue,RandomSaturation,RandomSharpness,AugMix,CutMix,MixUp,RandAugment,Equalization,Solarization,Pipeline,MaxNumBoundingBoxes, etc.)
๐ง Numerical correctness verified end-to-end against Keras 3.14 across multiple distinct configurations of every new layer.
- ๐
Previous changes from v0.19.5
-
๐ Patch release: bump tested TensorFlow / Keras versions to the latest.
- Bump CI pin and the README's documented tested versions to TensorFlow 2.21.0 / Keras 3.14.0 (was 2.18.0 / 3.8.0).
- Accept the renamed Threshold layer config keys Keras 3.14 emits (
thresholdanddefault_value), with fallback to the old keys (threshold_valueandvalue) for models exported by older Keras versions. - โก๏ธ Update the perf-test Dockerfile to match: bazel-7.7.0 (required by TF 2.21's
.bazelversion),xxdtooling, and an explicitkeras==3.14.0pin.
๐ Verified by running the test suite on the new versions and a full end-to-end docker build of the perf-test Dockerfile.