Skip to content

v0.6.0 release

Compare
Choose a tag to compare
@jgosmann jgosmann released this 17 Sep 19:45

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 to nengo_spa.action_selection,
    • nengo_spa.pointer to nengo_spa.semantic_pointer,
    • nengo_spa.vocab to nengo_spa.vocabulary,
    • and nengo_spa.modules.assoc_mem to nengo_spa.modules.associative_memory.

    (#199, #205)

  • 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 for Vocabulary to pointer_gen. (#201)

  • Renamed input_a and input_b of the nengo_spa.Bind module to input_left and input_right to account for non-commutative binding methods where the order of operands matters. Also, renamed the invert_a and invert_b arguments to unbind_left and unbind_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 parameter represent_identity to represent_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 because nengo_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 in nengo_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 to nengo_spa.dot. (#202)