Releases#
Release Notes#
Version 0.4 (2026-02-03)#
Multi-GPU distributed training, CLI tool, and DataLoader integration.
Added#
Add TorchDR CLI for easy multi-GPU execution PR #233.
Add DistributedContext for multi-GPU distance computations PR #229.
Add multi-GPU affinity computations PR #217.
Add multi-GPU neighbor embedding PR #218.
Add distributed symmetrize sparse operations PR #219.
Add distributed support for neighborhood preservation metric PR #231.
Add DistributedPCA for multi-GPU PCA computation PR #248.
Add distributed support to PCA and ExactIncrementalPCA PR #253.
Add exact incremental PCA PR #213.
Add k-NN label accuracy metric PR #230.
Add k-means and neighborhood preservation evaluation scores PR #214.
Add IVF support in FAISS k-NN backend PR #220.
Add pairwise distances with query and key indexes PR #216.
Add DataLoader support for memory-efficient k-NN computation PR #236.
Add FAISS configuration options PR #208.
Add automatic releases via GitHub Actions PR #226.
Add cross-platform CI testing for macOS and Windows PR #258.
Add tests for CLI, distributed, and sparse modules PR #246.
Changed#
Rename SampledNeighborEmbedding to NegativeSamplingNeighborEmbedding PR #225.
Standardize device parameter to ‘auto’ default across all modules PR #241.
Refactor device management for consistency PR #211.
Improve memory management with torch buffers PR #203.
Optimize root_search with masked_scatter_ PR #204.
Fixed#
Fix memory leak in AffinityMatcher by freeing input data after initialization PR #223.
Fix PACMAP device handling PR #215.
Fix AffinityMatcher kwargs mutation PR #240.
Fix CLI port conflicts with –standalone flag PR #251.
Fix TSNEkhorn docstring parameter name PR #237.
Fix UMAP spectral init docstring PR #207.
Add warning when distributed launch detected without GPU PR #238.
Removed#
Documentation#
Add multi-GPU distributed training documentation PR #243.
Add DistributedPCA documentation PR #252.
Add DataLoader feature documentation PR #245.
Reorganize User Guide and API documentation PR #244.
Improve FAISS installation error detection and messages PR #227.
Fix documentation warnings and improve README PR #239.
Version 0.3 (2025-07-15)#
New algorithms (PHATE, PACMAP), torch.compile support, and Python 3.8+ compatibility.
Added#
Add PHATE algorithm PR #185.
Add PACMAP algorithm PR #182.
Add COSNE support for hyperbolic embeddings PR #178.
Add support for torch.compile PR #194.
Add direct gradient computation for neighbor embeddings PR #196.
Add support for any Torch optimizer or scheduler PR #174.
Add automatic duplicate handling PR #188.
Changed#
Optimize UMAP memory via direct gradient computation and edge masking PR #198.
Make affinity_out optional in AffinityMatcher PR #186.
Standardize logging across modules PR #187.
Enhance logging with timing information PR #193.
Align DRModule with scikit-learn API and improve type hints PR #191.
Reorganize affinity module structure PR #189.
Ensure compatibility with Python 3.8+ PR #173.
Fixed#
Version 0.2 (2025-02-07)#
FAISS support, incremental PCA, and improved developer tooling.
Added#
Add FAISS support for k-NN PR #160.
Add extensible k-NN backend system PR #159.
Add incremental PCA PR #137.
Add automatic fallback to KeOps backend on out-of-memory errors PR #130.
Add improved random seeding system PR #154.
Add CIFAR examples with DINOv2 features PR #158.
Add single-cell RNA-seq example with Census data PR #166.
Add pre-commit hooks for code quality PR #147.
Add code of conduct PR #127.
Add pull request template PR #125.
Changed#
Fixed#
Version 0.1 (2024-09-17)#
Initial release with core dimensionality reduction algorithms.
Added#
Add basic affinities: scalar product, Gaussian, and Student kernels.
Add k-NN normalized affinities: Self-tuning affinities and MAGIC.
Add doubly stochastic affinities with entropic and quadratic projections.
Add adaptive affinities with entropy control (entropic affinity) and symmetric version.
Add UMAP input and output affinities.
Add AffinityMatcher template for DR with gradient descent and custom affinities.
Add batched AffinityMatcher for efficient batch processing PR #12.
Add neighbor embedding methods: SNE, t-SNE, t-SNEkhorn, UMAP, LargeVis, InfoTSNE.
Add SampledNeighborEmbedding for efficient negative sampling PR #72.
Add template objects for neighbor embedding methods.
Add spectral embeddings via eigendecomposition of input affinity matrix.
Add Kernel PCA for nonlinear dimensionality reduction PR #41.
Add k-means clustering PR #111.
Add sparse affinity computations PR #70.
Add SparseAffinityMatcher PR #71.
Add transform method for affinities to apply to new data PR #69.
Add callable affinity objects PR #84.
Add pairwise symmetric distances with indices PR #75.
Add KeOps compatibility for all components except spectral embeddings.
Add silhouette score evaluation metric.
Changed#
Removed#
Remove SNEkhorn in favor of TSNEkhorn PR #90.