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
,HashIndex
and 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
CodeIndex
and update references toITQNearestNeighborsIndex
toLSHNearestNeighborIndex
.
HashIndex
- Added new
HashIndex
algorithm 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
ITQNearestNeighborsIndex
functionality).
NearestNeighborIndex
- Added generalized LSH implementation:
LSHNearestNeighborIndex
, which uses a combination ofLshFunctor
andHashIndex
for modular assembly of functionality.- Removed deprecated
ITQNearestNeighborsIndex
implementation (reproducible using the newLSHNearestNeighborIndex
withItqFunctor
andLinearHashIndex
).
Tests
- Added tests for DescriptorIndex abstract and in-memory implementation.
- Removed tests for deprecated
CodeIndex
andITQNearestNeighborsIndex
- 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
, removingCodeIndex
and addingLshFunctor
andHashIndex
interfaces.
Utilities
- Added
cosine_distance
function (inverse ofcosine_similarity
)- Updated
compute_distance_kernel
to be able to takenumba.jit
compiled 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
Classifier
interface 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.