SMQTK v0.3.0 Release Notes¶
This minor release primarily adds a new modular LSH nearest-neighbor index
algorithm implementation. This new implementation strictly replaces the now
deprecated and removed ITQNearestNeighborsIndex implementation because of
its increased modularity and flexibility. The old ITQNearestNeighborsIndex
implementation had been hard-coded and its previous functionality can be
reproduced with the new implementation (ItqFunctor + LinearHashIndex).
The CodeIndex representation interface has also been depricated as its
function has been replaced by the combination of the
LSHNearestNeighborIndex implementation.
Updates / New Features since v0.2.2¶
CodeIndex
- Deprecated/Removed because of duplication with
DescriptorIndex,HashIndexand LSH algorithm.
Custom LibSVM
- Fix compiler error on Windows with Visual Studio < 2013. Log2 doesn’t exist until that VS version. Added stand-in.
DescriptorIndex
- Added initial Solr backend implementation.
Documentation
- Updated documentation to references to
CodeIndexand update references toITQNearestNeighborsIndextoLSHNearestNeighborIndex.
HashIndex
- Added new
HashIndexalgorithm interface for efficient neighbor indexing of hash codes (bit vectors).- Added linear (brute force) implementation.
- Added ball-tree implementation (uses
sklearn.neighbors.BallTree)
LshFunctor
- Added new interface for LSH hash code generation functor.
- Added ITQ functor (replaces old
ITQNearestNeighborsIndexfunctionality).
NearestNeighborIndex
- Added generalized LSH implementation:
LSHNearestNeighborIndex, which uses a combination ofLshFunctorandHashIndexfor modular assembly of functionality.- Removed deprecated
ITQNearestNeighborsIndeximplementation (reproducible using the newLSHNearestNeighborIndexwithItqFunctorandLinearHashIndex).
Tests
- Added tests for DescriptorIndex abstract and in-memory implementation.
- Removed tests for deprecated
CodeIndexandITQNearestNeighborsIndex- Added tests for
LSHNearestNeighborIndex+ high level tests using ITQ functor with linear and ball-tree hash indexes.
Tools / Scripts
- Added optional global default config generation to
summarizePlugins.py- Updated
summarizePlugins.py, removingCodeIndexand addingLshFunctorandHashIndexinterfaces.
Utilities
- Added
cosine_distancefunction (inverse ofcosine_similarity)- Updated
compute_distance_kernelto be able to takenumba.jitcompiled functions
Web / Services
- Added query sub-slice return option to NearestNeighborServiceServer web-app.
Fixes since v0.2.2¶
DescriptorElement
- Fixed mutibility of stored descriptors in DescriptorMemoryElement implementation.
Tools / Scripts
- Added
Classifierinterface plugin summarization tosummarizePlugins.py.
Utilities
- Fixed bug with
smqtk.utils.bit_utils.int_to_bit_vector[_large]when give a 0-value integer.
Web / Services
- Fixed issue with IQR alerts not showing whitespace correctly.
- Fixed issue with IQR reset not resetting everything, which caused the application to become unusable.