v0.6.0 release
Added
- Support for algebras that allow to use binding operations other than circular convolution. This includes an implementation of vector-derived transformation binding (VTB) and the
nengo_spa.networks.VTB
network to perform this particular binding operation. (#69, #198) - Added generators for vectors with different properties that can be used to define how vectors are created in a vocabulary (e.g., axis-aligned, orthogonal, unitary). (#201, #129)
- Added a matrix multiplication network
nengo_spa.networks.MatrixMult
based on the nengo-extras implementation. (#198) - Allow to connect to the utility node returned by ifmax with the SPA >> operator. (#190, #194)
- The Semantic Pointer names AbsorbingElement, Identity, and Zero now have a special meaning in Vocabulary and nengo_spa.sym and will return the respective special Semantic Pointers. (#195, #176)
- SemanticPointer instance can now track names for improved labeling in Nengo GUI. (#202, #184)
- Label the utility nodes for the action selection. (#202)
Changed
-
A number of module names have been changed for better naming consistency. In particular,
nengo_spa.actions
tonengo_spa.action_selection
,nengo_spa.pointer
tonengo_spa.semantic_pointer
,nengo_spa.vocab
tonengo_spa.vocabulary
,- and
nengo_spa.modules.assoc_mem
tonengo_spa.modules.associative_memory
.
-
Require the
mapping
argument for associative memories. In addition to dictionaries and the string'by-key'
, a sequence of strings can be passed in to create an auto-associative memory. (#177) -
Changed the
rng
argument forVocabulary
topointer_gen
. (#201) -
Renamed
input_a
andinput_b
of thenengo_spa.Bind
module toinput_left
andinput_right
to account for non-commutative binding methods where the order of operands matters. Also, renamed theinvert_a
andinvert_b
arguments tounbind_left
andunbind_right
to reflect that some binding methods might not have inverse vectors, but might still be able to do unbinding. (#69, #198) -
Renamed the
nengo_spa.State
parameterrepresent_identity
torepresent_cc_identity
to reflect that it only optimizes for the circular convolution identity, but not the identity for other binding operations. (#212)
Removed
- Removed
nengo_spa.networks.circularconvolution.circconv
becausenengo_spa.algebras.CircularConvolutionAlgebra
provides the same functionality. (#198) - The
SemanticPointer
class does no longer accept a single integer as dimensionality to create a random vector. Use the new generators innengo_spa.vector_generation
instead. (#201)
Fixed
- Raise an exception instead of returning incorrect results from
prob_cleanup
. Also, fix the function's incorrect documentation. (#203, #206) - Fix
nengo_spa.ActionSelection.keys()
when no named actions have been provided. (#210) - Do not create an unnecessary compare network when computing a dot product with a
SemanticPointer
instance. (#202) - Handle
SemanticPointer
instances correctly as first argument tonengo_spa.dot
. (#202)