ca.nengo.model.nef
Interface DecodableEnsemble
- All Superinterfaces:
- java.lang.Cloneable, Ensemble, Node, PlasticEnsemble, Probeable, Resettable, java.io.Serializable, SimulationMode.ModeConfigurable, VisiblyMutable
- All Known Subinterfaces:
- NEFEnsemble
- All Known Implementing Classes:
- DecodableEnsembleImpl, NEFEnsembleImpl
public interface DecodableEnsemble
- extends PlasticEnsemble, Probeable
An Ensemble that produces output signals that mean something when taken together. This meaning
can be decoded, as a scalar or vector, through linear combination of the outputs.
Note that NEFEnsemble is a paricularly powerful and efficient special case of DecodableEnsemble.
However NEFEnsemble makes some assumptions that can be relaxed by using DecodableEnsemble instead:
- It assumes that its Nodes can run in the SimulationMode CONSTANT_RATE
- It assumes that activity arises from cosine-tuning to preferred input vectors (all Nodes must be
NEFNodes for this reason).
- Author:
- Bryan Tripp
Method Summary |
Origin |
addDecodedOrigin(java.lang.String name,
Function[] functions,
java.lang.String nodeOrigin,
Network environment,
Probe probe,
float startTime,
float endTime)
Adds an Origin that corresponds to a decoding of the activities of Nodes in this Ensemble. |
Origin |
addDecodedOrigin(java.lang.String name,
Function[] functions,
java.lang.String nodeOrigin,
Network environment,
Probe probe,
Termination termination,
float[][] evalPoints,
float transientTime)
Adds an Origin that corresponds to a decoding of the activities of Nodes in this Ensemble. |
void |
doneOrigins()
This method can optionally be called after all decoded Origins have been added, in order to free
resources that are needed for adding new decodings. |
void |
removeDecodedOrigin(java.lang.String name)
|
addDecodedOrigin
Origin addDecodedOrigin(java.lang.String name,
Function[] functions,
java.lang.String nodeOrigin,
Network environment,
Probe probe,
float startTime,
float endTime)
throws StructuralException,
SimulationException
- Adds an Origin that corresponds to a decoding of the activities of Nodes in this Ensemble. The decoding
is found by running the Ensemble within a Network, and using its output to approximate a vector function
of time.
- Parameters:
name
- Name of decodingfunctions
- 1D Functions of time which represent the meaning of the Ensemble output when it runs
in the Network provided (see environment arg)nodeOrigin
- The name of the Node-level Origin to decodeenvironment
- A Network in which the Ensemble runs (may include inputs, feedback, etc)probe
- A Probe that is connected to the named Node-level OriginstartTime
- Simulation time at which to startendTime
- Simulation time at which to start
- Returns:
- An Origin that approximates the given Functions as a linear combination of output from the given
nodeOrigin
- Throws:
StructuralException
- May arise in instantiating the Origin
SimulationException
- If there is a problem running the simulation
addDecodedOrigin
Origin addDecodedOrigin(java.lang.String name,
Function[] functions,
java.lang.String nodeOrigin,
Network environment,
Probe probe,
Termination termination,
float[][] evalPoints,
float transientTime)
throws StructuralException,
SimulationException
- Adds an Origin that corresponds to a decoding of the activities of Nodes in this Ensemble. The decoding
is found by running the Ensemble repeatedly with different inputs, and using the steady-state output
for each input to approximate a vector function of the input. Input is applied to a caller-defined
Termination which may or may not be directly onto the Ensemble.
- Parameters:
name
- Name of decodingfunctions
- Functions of input that represent the meaning of Ensemble output when it runs in the
Network provided (see environment arg)nodeOrigin
- The name of the Node-level Origin to decodeenvironment
- A Network in which the Ensemble runs (may include inputs, feedback, etc)probe
- A Probe that is connected to the named Node-level Origintermination
- The Termination through which input is to be applied to the EnsembleevalPoints
- The set of vector inputs that are to be applied at the above TerminationtransientTime
- The amount of time the Network is to run with each input, so that transients die away
(output is averaged over the last 10% of each simulation)
- Returns:
- An Origin that approximates the given Functions as a linear combination of output from the given
nodeOrigin
- Throws:
StructuralException
- May arise in instantiating the Origin
SimulationException
- If there is a problem running the simulations
doneOrigins
void doneOrigins()
- This method can optionally be called after all decoded Origins have been added, in order to free
resources that are needed for adding new decodings.
removeDecodedOrigin
void removeDecodedOrigin(java.lang.String name)
- Parameters:
name
- Name of an existing decoding to remove