Skip to main content

An implementation of the Semantic Pointer Architecture for Nengo

Project description

Travis-CI build status AppVeyor build status Test coverage

Nengo SPA logo

Implementation of the Semantic Pointer Architecture for Nengo

Project status

  • All of the core functionality is implemented, but some of the API might still be subject to changes.

Installation

Nengo SPA depends on Nengo 2.7+, and we recommend that you install Nengo before installing Nengo SPA.

To install Nengo SPA:

pip install nengo-spa

Nengo SPA is tested to work on Python 2.7 and 3.4+.

Documentation

The documentation can be found here.

Getting Help

Questions relating to Nengo and Nengo SPA, whether it’s use or it’s development, should be asked on the Nengo forum at https://forum.nengo.ai.

Release History

0.5.1 (June 7, 2018)

Added

  • Transcode now supports SemanticPointer and PointerSymbol output types. (#175, #178)

Fixed

  • Allow integer values for vocabularies in associative memories. (#171)

  • Implement reinterpret operator for pointer symbols. (#169, #179)

0.5.0 (June 1, 2018)

Added

  • One-dimensional outputs of Nengo objects can be used as scalars in action rules. (#139, #157)

  • Syntactic sugar for complex symbolic expressions: nengo_spa.sym('A + B * C'). (#138, #159)

  • Include the achieved similarity in warning issued when desired maximum similarity could not be obtained. (#117, #158)

  • Possibility to name Vocabulary instances for debugging. (#163, #165)

Changed

  • Make the error message for incompatible types more informative. (#131, #160

0.4.1 (May 18, 2018)

This release fixes problems with the online documentation. Local installs are not affected.

0.4.0 (May 17, 2018)

This release increases the minimum required Nengo version to Nengo 2.7 (previously Nengo 2.4).

Added

  • Added documentation and build tools for the documentation. (#68)

Changed

  • This release introduces a new syntax for SPA action rules. (#114)

Remove

  • Unnecessary vocab argument from Transcode. (#68)

Fixed

  • Validation of VocabOrDimParam and VocabularyMapParam. (#95, #98)

  • Allow the configuration of instance parameters with nengo_spa.Network.config. (#112, #113)

  • Fix an undeclared input to the IAAssocMem module. (#118, #120)

0.3.2 (November 17, 2017)

Added

  • Add all_bgs and all_thals methods to AstAccessor to enable easy access to these objects. (#61, #28)

Fixed

  • Allow the spa.Actions string to be empty. (#107, #109)

  • The pass keyword can now be used to create blocks in action rules that do not have any effect. (#101, #103)

  • Allow comments at various places in actions rules. (#102, #104)

0.3.1 (November 7, 2017)

Changed

  • Clearer error message as a SpaTypeError something is used as input/output in an action rule without being declared as such. (#82, #89)

Fixed

  • Allow leading comments in actions rules. (#81, #85)

  • Gave the basal ganglia a default label. (#84, #88)

  • Fixed warning produce by the create_inhibit_node function. (#90)

  • Prevent whitespace from being completely removed in action rules. (#92, #93)

  • Have the intercept_width argument of IA actually take effect. (#94, #97)

0.3.0 (October 16, 2017)

Added

  • Add add_output and add_neuron_output methods to IdentityEnsembleArray to provide the full API that is provided by the regular Nengo EnsembleArray. (#61, #28)

  • Add create_inhibit_node function to create nodes that inhibit complete Nengo networks. (#65, #26)

  • Add a solver argument to the action rule’s translate to use a solver instead of an outer product to obtain the transformation matrix which can give slightly better results. (#62, #57)

Changed

  • Actions rules do not require module to be assigned to the model any longer. They will access exactly the same variables as are available in the surrounding Python code. This means that existing action rules need to be changed to reference the correct names. (#63)

  • The action rule syntax changed significantly. (#54, #72)

  • Actions will be build automatically without an explicit call to build(). (#59, #45, #55)

  • Consolidated the functionality of Encode and Decode into Transcode. (#67, #58)

Fixed

  • Fix some operations changing the dimensionality of semantic pointers with an odd initial dimensionality. (#52, #53)

  • When building actions the basal ganglia and thalamus will only be created when actually required. (#60, #42)

  • The vocabulary translate mechanism will properly ignore missing keys in the target vocabulary when populate=False. (#62, #56)

  • Allow empty string as argument to Vocabulary.populate. (#73)

0.2 (June 22, 2017)

Added

  • Tutorial explaining what has changed in nengo_spa compared to the legacy SPA implementation. (#46)

  • Examples can be extracted with python -m nengo_spa extract-examples <destination>. (#49, #7)

Changed

  • Replaced input_keys and output_keys arguments of associative memories with a single mapping argument. (#29, #8)

  • Replaced ampa_config and gaba_config parameters of the BasalGanglia with ampa_synapse and gaba_synapse parameters. Removed the general_config parameter. (#30, #23)

Fixed

  • Improved a number of error messages. (#35, #32, #34)

  • Improved accuracy by fixing choice of evaluation point and intercept distributions. (#39)

  • Correctly apply transforms on first vector in vocabularies on on non-strict vocabularies. (#43)

0.1.1 (May 19, 2017)

Fixed

  • Updated the 0.1 changelog.

0.1 (May 19, 2017)

Initial release of Nengo SPA with core functionality, but excluding

  • updates and completion the documentation,

  • proper integration with Nengo GUI.

The API is still conisdered unstable in some parts of it are likely to change in the future.

Main features compared to the SPA implementation shipped with Nengo are:

  • neural representations have been optimized for higher accuracy,

  • support for arbitrarily complex action rules,

  • SPA networks can be used as normal Nengo networks,

  • and SPA networks can be nested.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nengo_spa-0.5.1.tar.gz (218.8 kB view details)

Uploaded Source

Built Distribution

nengo_spa-0.5.1-py2.py3-none-any.whl (143.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file nengo_spa-0.5.1.tar.gz.

File metadata

  • Download URL: nengo_spa-0.5.1.tar.gz
  • Upload date:
  • Size: 218.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nengo_spa-0.5.1.tar.gz
Algorithm Hash digest
SHA256 1231ab317edfa3e9ea08a67adac555a56ddc27efa91fea0b91d17bf167ef89c8
MD5 f194a9d03884d315f0c5778399011c67
BLAKE2b-256 435ca40f621540386685ab438c704b45c7a4c90076b7e3d6cce43ecf51c77a82

See more details on using hashes here.

File details

Details for the file nengo_spa-0.5.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for nengo_spa-0.5.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 14b298f8f529e67c3cd98c6bab50b9911819239906e717efa7d2022f58e41dd5
MD5 b1d50980478b1b48f56c6af170607eea
BLAKE2b-256 473147f49f6fcf4aeead2c7a53a21accc365fe01705db83c039dad38fb7a469f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page