nengo_spa.pointer¶

Classes

 AbsorbingElement(n_dimensions[, vocab, algebra]) Absorbing element. Identity(n_dimensions[, vocab, algebra]) Identity element. SemanticPointer(data[, vocab, algebra, name]) A Semantic Pointer, based on Holographic Reduced Representations. Zero(n_dimensions[, vocab, algebra]) Zero element.
class nengo_spa.semantic_pointer.SemanticPointer(data, vocab=None, algebra=None, name=None)[source]

A Semantic Pointer, based on Holographic Reduced Representations.

Operators are overloaded so that + and - are addition, * is circular convolution, and ~ is the inversion operator.

Parameters: data (array_like) – The vector constituting the Semantic Pointer. vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument. algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to CircularConvolutionAlgebra. Mutually exclusive with the vocab argument. name (str, optional) – A name for the Semantic Pointer.
v

The vector constituting the Semantic Pointer.

Type: array_like
algebra

Algebra that defines the vector symbolic operations on this Semantic Pointer.

Type: AbstractAlgebra
vocab

The vocabulary the this Semantic Pointer is considered to be part of.

Type: Vocabulary or None
name

Name of the Semantic Pointer.

Type: str or None
normalized()[source]

Normalize the Semantic Pointer and return it as a new object.

If the vector length is zero, the Semantic Pointer will be returned unchanged.

The original object is not modified.

unitary()[source]

Make the Semantic Pointer unitary and return it as a new object.

The original object is not modified.

A unitary Semantic Pointer has the property that it does not change the length of Semantic Pointers it is bound with using circular convolution.

copy()[source]

Return another semantic pointer with the same data.

length()[source]

Return the L2 norm of the vector.

bind(other)[source]

Return the binding of two SemanticPointers.

rbind(other)[source]

Return the binding of two SemanticPointers.

get_binding_matrix(swap_inputs=False)[source]

Return the matrix that does a binding with this vector.

This should be such that A*B == dot(A.get_binding_matrix(), B.v).

dot(other)[source]

Return the dot product of the two vectors.

compare(other)[source]

Return the similarity between two SemanticPointers.

This is the normalized dot product, or (equivalently), the cosine of the angle between the two vectors.

distance(other)[source]

Return a distance measure between the vectors.

This is 1-cos(angle), so that it is 0 when they are identical, and the distance gets larger as the vectors are farther apart.

mse(other)[source]

Return the mean-squared-error between two vectors.

class nengo_spa.semantic_pointer.Identity(n_dimensions, vocab=None, algebra=None)[source]

Identity element.

Parameters: n_dimensions (int) – Dimensionality of the identity vector. vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument. algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to CircularConvolutionAlgebra. Mutually exclusive with the vocab argument.
class nengo_spa.semantic_pointer.AbsorbingElement(n_dimensions, vocab=None, algebra=None)[source]

Absorbing element.

If $$z$$ denotes the absorbing element, $$v \circledast z = c z$$, where $$v$$ is a Semantic Pointer and $$c$$ is a real-valued scalar. Furthermore $$\|z\| = 1$$.

Parameters: n_dimensions (int) – Dimensionality of the identity vector. vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument. algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to CircularConvolutionAlgebra. Mutually exclusive with the vocab argument.
class nengo_spa.semantic_pointer.Zero(n_dimensions, vocab=None, algebra=None)[source]

Zero element.

Parameters: n_dimensions (int) – Dimensionality of the identity vector. vocab (Vocabulary, optional) – Vocabulary that the Semantic Pointer is considered to be part of. Mutually exclusive with the algebra argument. algebra (AbstractAlgebra, optional) – Algebra used to perform vector symbolic operations on the Semantic Pointer. Defaults to CircularConvolutionAlgebra. Mutually exclusive with the vocab argument.