Releases: OpenTabular/DeepTab
Release list
v2.0.0
DeepTab v2.0.0
DeepTab v2 is a major release. The whole package has been reorganized around a clean, sklearn-compatible split-config API, with a new internal layout, typed configuration objects, richer training and observability hooks, and a lightweight inference and serialization story.
If you are new to DeepTab, this is a great place to start. If you are coming from v1, please read the breaking change note below before you upgrade.
⚠️ Breaking change
The internal package layout, configuration objects, and import paths have all changed. Code written for v1 will not run unchanged. The Migration Guide walks you through every rename step by step.
Highlights
- Split-config API. Models are now configured through dedicated
<Model>Config,PreprocessingConfig, andTrainerConfigobjects instead of one long list of keyword arguments. Each config has a single, clear responsibility, so it is easier to read, reuse, and validate. - New package structure. The library is split into clear modules:
core,nn,architectures,configs,data,training,metrics,distributions, andhpo, each with its own public API. - Stable and experimental split. Stable models are exported directly. Experimental models (ModernNCA, Tangos, Trompt) sit behind a lazy boundary so you always know what is production ready and what is still maturing.
- Lightweight inference wrapper. Save and load trained models through the
.deeptabformat, complete with rich serialization metadata for reproducible deployment. - Observability. A new
ObservabilityConfigis threaded through every estimator, with built-in support for experiment trackers.
New Features
- Optimizer and scheduler registry covering every
torch.optimclass, wired into both the Lightning module andTrainerConfig. - A new
deeptab.metricsregistry for classification, regression, and distributional tasks that powersevaluate(). - More distributions, including Tweedie, inflated Poisson, and log-normal.
- Class-imbalance loss registry with weighted sampling.
- Model inspection API with a
profile()dry run for pre-training diagnostics and read-onlytask_modelaccess. - Reproducibility helpers
set_seedandseed_context. - A typed exception hierarchy with sklearn-compatible error types.
print_hardware_infofor quick CPU, CUDA, and MPS detection.
Note for researchers
The metrics, distributions, and reproducibility helpers are designed to make experiments easier to seed, audit, and compare across runs.
Notable Fixes
- Stronger sklearn compatibility through
check_is_fitted,__sklearn_is_fitted__, dataframe coercion, andValueError-based error types. - Transformer attention now uses
batch_firstto prevent cross-sample leakage. - Custom torchmetrics are registered through
nn.ModuleDictso their state moves with the model to the correct device. - Distribution parameter transforms are applied before metric computation.
- DataLoader and sampler generators are now seeded for reproducible runs.
Migration
Every renamed config, import path, and the new save, load, and serve flow are documented in the Migration Guide. For the complete list of changes, see the CHANGELOG.md.
Pull Requests
Full Changelog: v1.8.0...v2.0.0
v2.0.0rc2
Full Changelog: v2.0.0rc1...v2.0.0rc2
Full Changelog: v2.0.0rc1...v2.0.0rc2
v2.0.0rc1
What's Changed
- feat!: v2 release include split-config API, experimental models, and docs overhaul by @mkumar73 in #400
Full Changelog: v1.8.0...v2.0.0rc1
What's Changed
- feat!: v2 release include split-config API, experimental models, and docs overhaul by @mkumar73 in #400
Full Changelog: v1.8.0...v2.0.0rc1
v1.8.0
Release v1.7.0
What's Changed
Highlights
- Improved the testing framework with better cross-platform support.
- Fixed
MambularDatasetlength handling for datasets with only categorical features. - Simplified CI/CD and release workflows.
- Updated release process with improved PyPI publishing flow.
- Added documentation improvements and additional tests.
- Completed the final release bump from
1.7.0rc2to1.7.0.
Bug Fixes
- Fixed
MambularDatasetlength for data with only categorical features by @MaxSchambach in #278. - Merged
1.7.0hotfixes back intomainby @mkumar73 in #334.
CI/CD and Release Improvements
- Added conventional commit and semantic release setup by @mkumar73 in #295.
- Simplified branching, hardened release workflow, and updated PyPI publishing flow by @mkumar73 in #320.
- Fixed GitHub Actions workflow by simplifying package installation by @ChrisW09 in #286.
- Synced development branch after semantic release by @mkumar73 in #296.
Documentation, Testing, and Maintenance
- Enhanced testing framework with cross-platform support by @mhabedank in #266.
- Added release updates, documentation improvements, and tests by @mkumar73 in #326.
- Updated project configuration by @ChrisW09 in #274.
Repository Rename and Cleanup
- Updated repository/package references as part of the rename cleanup by @ChrisW09 in #282, #289, and #292.
- Merged development cleanup changes by @ChrisW09 in #284, #287, #290, and #293.
Release Preparation
- Prepared release candidate
1.7.0rc1by @mkumar73 in #328. - Finalized release
1.7.0from1.7.0rc2by @mkumar73 in #335.
New Contributors
- @mhabedank made their first contribution in #266.
- @MaxSchambach made their first contribution in #278.
Full Changelog
What's Changed
- Enhanced Testing Framework with Cross-Platform Support by @mhabedank in #266
- Bump urllib3 from 2.3.0 to 2.5.0 by @dependabot[bot] in #273
- Bump requests from 2.32.3 to 2.32.4 by @dependabot[bot] in #272
- Bump torch from 2.5.1 to 2.7.0 by @dependabot[bot] in #270
- Update pyproject.toml by @ChrisW09 in #274
- Bump aiohttp from 3.11.13 to 3.12.14 by @dependabot[bot] in #276
- Fix
MambularDatasetlength for data with only categorical features by @MaxSchambach in #278 - Feature/rename by @ChrisW09 in #282
- Develop by @ChrisW09 in #284
- Fix GitHub Actions workflow: simplify package installation by @ChrisW09 in #286
- Develop by @ChrisW09 in #287
- Feature/rename by @ChrisW09 in #289
- Develop by @ChrisW09 in #290
- Feature/rename by @ChrisW09 in #292
- Develop by @ChrisW09 in #293
- CI: Conventional commit and semantic release by @mkumar73 in #295
- ci: sync develop post semantic release by @mkumar73 in #296
- feat: conventional commit and semantic release by @mkumar73 in #306
- ci: simplify branching, harden release, update PyPI publishing flow by @mkumar73 in #320
- feat: release update, docs improvements, test added by @mkumar73 in #326
- bump: version 1.6.1 → 1.7.0rc1 by @mkumar73 in #328
- fix: merge 1.7.0 hotfixes into main by @mkumar73 in #334
- bump: version 1.7.0rc2 → 1.7.0 by @mkumar73 in #335
New Contributors
- @mhabedank made their first contribution in #266
- @MaxSchambach made their first contribution in #278
Full Changelog: v1.5.0...v1.7.0
v1.7.0rc2
What's Changed
- Enhanced Testing Framework with Cross-Platform Support by @mhabedank in #266
- Bump urllib3 from 2.3.0 to 2.5.0 by @dependabot[bot] in #273
- Bump requests from 2.32.3 to 2.32.4 by @dependabot[bot] in #272
- Bump torch from 2.5.1 to 2.7.0 by @dependabot[bot] in #270
- Update pyproject.toml by @ChrisW09 in #274
- Bump aiohttp from 3.11.13 to 3.12.14 by @dependabot[bot] in #276
- Fix
MambularDatasetlength for data with only categorical features by @MaxSchambach in #278 - Feature/rename by @ChrisW09 in #282
- Develop by @ChrisW09 in #284
- Fix GitHub Actions workflow: simplify package installation by @ChrisW09 in #286
- Develop by @ChrisW09 in #287
- Feature/rename by @ChrisW09 in #289
- Develop by @ChrisW09 in #290
- Feature/rename by @ChrisW09 in #292
- Develop by @ChrisW09 in #293
- CI: Conventional commit and semantic release by @mkumar73 in #295
- ci: sync develop post semantic release by @mkumar73 in #296
- feat: conventional commit and semantic release by @mkumar73 in #306
- ci: simplify branching, harden release, update PyPI publishing flow by @mkumar73 in #320
New Contributors
- @mhabedank made their first contribution in #266
- @MaxSchambach made their first contribution in #278
Full Changelog: v1.5.0...v1.7.0rc2
Release v1.5.0
This release includes significant updates to the mambular package, focusing on integrating the pretab library for preprocessing, updating the version, and removing deprecated preprocessing modules. The most important changes include updating the documentation, modifying imports to use pretab, and removing old preprocessing code.
Documentation Updates:
README.md: Updated preprocessing section to mention the use ofpretaband provided links for further information.docs/api/preprocessing/Preprocessor.rst: Removed thePreprocessorclass documentation.docs/api/preprocessing/index.rst: Removed the preprocessing module documentation.
Codebase Updates:
mambular/__version__.py: Updated the version from 1.4.0 to 1.5.0.mambular/models/utils/sklearn_base_lss.pyandmambular/models/utils/sklearn_parent.py: Changed imports frommambular.preprocessingtopretab.preprocessorand updated related code. [1] [2]
Removal of Deprecated Code:
mambular/preprocessing/basis_expansion.py,mambular/preprocessing/ple_encoding.py, andmambular/preprocessing/__init__.py: Removed old preprocessing classes and methods. [1] [2] [3]
What's Changed
- change readme by @AnFreTh in #255
- TabR integration + compatibility check for PLR embedding with pre-processing types. by @bishnukhadka in #258
- merge master back to develop by @AnFreTh in #259
- Lss fix by @AnFreTh in #260
- v1.5.0 by @mkumar73 in #261
- preprocessor cleanup by @mkumar73 in #262
- v1.5.0 fixed by @mkumar73 in #263
New Contributors
- @bishnukhadka made their first contribution in #258
Full Changelog: v1.4.0...v1.5.0
Release 1.4.0
What's Changed
- Hotfix/docs by @mkumar73 in #247
- Modernnca by @AnFreTh in #251
* Added MonderNCA and complete logic of using labels during training and inference into helper classes. - Data check by @AnFreTh in #252
* Introduced sanity checks in preprocessor module. - Develop by @AnFreTh in #253
Full Changelog: v1.3.2...v1.4.0
Release 3.1.2
Fix error for binary classification loss function in sklearninterface
Release v1.3.1
This release (v1.3.1) introduces the new Tangos model to the Mambular library, along with updates to the documentation, versioning, and configuration files. The most important changes include adding the Tangos model, updating the version number, and modifying the lightning_wrapper.py and pretraining.py files to use the new model.
New Model Addition:
mambular/base_models/tangos.py: Added theTangosmodel, which is an MLP model with optional GLU activation, batch normalization, layer normalization, and dropout, including a penalty term for specialization and orthogonality.mambular/base_models/__init__.py: Included theTangosmodel in the module imports and__all__list.mambular/configs/tangos_config.py: Added configuration class for theTangosmodel with predefined hyperparameters.
Documentation Updates:
README.md: Updated to include the newTangosmodel in the list of new models and added a description of the model. [1] [2]
Version Update:
mambular/__version__.py: Incremented the version number from 1.3.0 to 1.3.1 to reflect the new changes.
Code Refactoring:
mambular/base_models/utils/lightning_wrapper.py: Replaced instances ofbase_modelwithestimatorto accommodate the newTangosmodel. [1] [2] [3] [4] [5] [6] [7] [8] [9]mambular/base_models/utils/pretraining.py: Replaced instances ofbase_modelwithestimatorto reflect the new model structure. [1] [2] [3] [4]
Configuration Updates:
mambular/configs/__init__.py: AddedDefaultTangosConfigto the module imports and__all__list.mambular/models/__init__.py: IncludedTangosClassifier,TangosLSS, andTangosRegressorin the module imports and__all__list.