Package ca.nengo.model.impl

Examples of ca.nengo.model.impl.FunctionInput


      NEFEnsembleFactory ef = new NEFEnsembleFactoryImpl();
      final NEFEnsemble ensemble = ef.make("ensemble", 200, 1);
      ensemble.collectSpikes(true);
      network.addNode(ensemble);
     
      FunctionInput input = new FunctionInput("input", new Function[]{new ConstantFunction(1, 1)}, Units.UNK);
      network.addNode(input);
     
      network.run(0, 1);
     
      Environment.setUserInterface(true);
View Full Code Here


      private static final long serialVersionUID = 1L;
      public float map(float[] from) {
        return from[0] - 1;
      }
    };
    FunctionInput input = new FunctionInput("input", new Function[]{f}, Units.UNK);
//    FunctionInput zero = new FunctionInput("zero", new Function[]{new ConstantFunction(1, 0f)}, Units.UNK);
   
    Network network = new NetworkImpl();
    network.addNode(input);
    network.addNode(source);
    network.addNode(dest);

    source.addDecodedTermination("input", MU.I(1), .005f, false); //OK
    BiasOrigin bo = source.addBiasOrigin(source.getOrigin(NEFEnsemble.X), 200, "interneurons", true); //should have -ve bias decoders
    network.addNode(bo.getInterneurons()); //should be backwards response functions
//**    bo.getInterneurons().addDecodedTermination("source", MU.I(1), .005f, false);
   
//    Plotter.plot(bo.getInterneurons());
//    Plotter.plot(bo.getInterneurons(), NEFEnsemble.X);
   
//    DecodedTermination t = (DecodedTermination) dest.addDecodedTermination("source", MU.I(1), .005f, false);
//**    BiasTermination[] bt = dest.addBiasTerminations(t, .002f, bo.getDecoders()[0][0], ((DecodedOrigin) source.getOrigin(NEFEnsemble.X)).getDecoders());
//**    bt[1].setStaticBias(-1); //creates intrinsic current needed to counteract interneuron activity at 0
   
//    float[][] weights = MU.prod(dest.getEncoders(), MU.transpose(((DecodedOrigin) source.getOrigin(NEFEnsemble.X)).getDecoders()));
//*    float[][] biasEncoders = MU.transpose(new float[][]{bt[0].getBiasEncoders()});
//*    float[][] biasDecoders = MU.transpose(bo.getDecoders());
//*    float[][] weightBiases = MU.prod(biasEncoders, biasDecoders);
//*    float[][] biasedWeights = MU.sum(weights, weightBiases);
//    Plotter.plot(weights[0], "some weights");
//    Plotter.plot(biasedWeights[0], "some biased weights");
//    Plotter.plot(weights[1], "some more weights");
   
//    Plotter.plot(bt[0].getBiasEncoders(), "bias decoders");
   
    network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME), source.getTermination("input"));
    network.addProjection(source.getOrigin(NEFEnsemble.X), dest.getTermination("source"));
//*    network.addProjection(bo, bo.getInterneurons().getTermination("source"));
//*    network.addProjection(bo, bt[0]);
//*    network.addProjection(bo.getInterneurons().getOrigin(NEFEnsemble.X), bt[1]);
//    network.addProjection(zero.getOrigin(FunctionInput.ORIGIN_NAME), bt[1]);
View Full Code Here

      public float map(float[] from) {
        return from[0] - 1;
      }
    };
   
    FunctionInput input = new FunctionInput("input", new Function[]{f}, Units.UNK);
    network.addNode(input);
   
    NEFEnsembleFactory ef = new NEFEnsembleFactoryImpl();
    NEFEnsemble pre = ef.make("pre", 400, 1, "nefe_pre", false);
    pre.addDecodedTermination("input", MU.I(1), tauPSC, false);
//    DecodedOrigin baseOrigin = (DecodedOrigin) pre.getOrigin(NEFEnsemble.X);
    network.addNode(pre);
   
    NEFEnsemble post = ef.make("post", 200, 1, "nefe_post", false);
//    DecodedTermination baseTermination = (DecodedTermination) post.addDecodedTermination("pre", MU.I(1), tauPSC, false);
    network.addNode(post);
   
    network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME), pre.getTermination("input"));
    Projection projection = network.addProjection(pre.getOrigin(NEFEnsemble.X), post.getTermination("pre"));
   
    Probe pPost = network.getSimulator().addProbe("post", NEFEnsemble.X, true);
    network.run(0, 2);
    TimeSeries ideal = pPost.getData();
View Full Code Here

    network.addNode(neuron);

    Function f = new PiecewiseConstantFunction(new float[]{1, 2}, new float[]{0, 1, -1});
//    Function f = new SineFunction((float) Math.PI, 1f / (float) Math.PI);
//    Plotter.plot(f, 0, .01f, 3, "input");
    FunctionInput input = new FunctionInput("input", new Function[]{f}, Units.UNK);
    network.addNode(input);

    network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME), t);

//    Probe rate = network.getSimulator().addProbe("neuron", "rate", true);
//    Probe N = network.getSimulator().addProbe("neuron", "N", true);
//    Probe dNdt = network.getSimulator().addProbe("neuron", "dNdt", true);
//    Probe I = network.getSimulator().addProbe("neuron", "I", true);
View Full Code Here

            EnsembleImpl ensemble = new EnsembleImpl("ensemble", neurons);
            ensemble.addTermination("input", weights, .005f, false);
            ensemble.collectSpikes(true);
            network.addNode(ensemble);

            FunctionInput input = new FunctionInput("input", new Function[]{new PiecewiseConstantFunction(new float[]{0.2f}, new float[]{0, 0.5f})}, Units.UNK);
            network.addNode(input);

            network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME), ensemble.getTermination("input"));

//          Probe vProbe = network.getSimulator().addProbe("ensemble", 0, "V", true);
//          Probe nProbe = network.getSimulator().addProbe("ensemble", 0, "N", true);
//          Probe iProbe = network.getSimulator().addProbe("ensemble", 0, "I", true);
            Probe rProbe = network.getSimulator().addProbe("ensemble", "rate", true);
View Full Code Here

    LinearSynapticIntegrator integrator = new LinearSynapticIntegrator();
    IzhikevichSpikeGenerator generator = new IzhikevichSpikeGenerator(IzhikevichSpikeGenerator.Preset.REGULAR_SPIKING);
    ExpandableSpikingNeuron neuron = new ExpandableSpikingNeuron(integrator, generator, 1, 0, "neuron");   
    Termination t = neuron.addTermination("input", MU.I(1), .001f, false);
   
    FunctionInput input = new FunctionInput("input", new Function[]{new ConstantFunction(1, I)}, Units.UNK);
   
    Network network = new NetworkImpl();
    network.addNode(input);
    network.addNode(neuron);
    network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME), t);
   
    Probe v = network.getSimulator().addProbe("neuron", IzhikevichSpikeGenerator.V, true);
    Probe u = network.getSimulator().addProbe("neuron", IzhikevichSpikeGenerator.U, true);
   
    network.run(0, 1);
View Full Code Here

    FunctionInterpreter fi = new DefaultFunctionInterpreter();

    Function[] functions = new Function[] { fi.parse("x0 < .2", 1),
        new ConstantFunction(1, .5f), new ConstantFunction(1, .2f),
        new ConstantFunction(1, .3f) };
    FunctionInput in = new FunctionInput("input", functions, Units.UNK);

    NEFEnsembleFactory ef = new NEFEnsembleFactoryImpl();

    NEFEnsemble A = ef.make("A", 100, 1, "A", false);
    NEFEnsemble B = ef.make("B", 100, 1, "B", false);
    NEFEnsemble C = ef.make("C", 100, 1, "C", false);
    NEFEnsemble D = ef.make("D", 100, 1, "D", false);

    NEFEnsemble rule1a = ef.make("rule1a", 500, 2, "rule1a", false);
    NEFEnsemble rule1b = ef.make("rule1b", 500, 2, "rule1b", false);
    NEFEnsemble rule2 = ef.make("rule2", 200, 1, "rule2", false);
    rule2.collectSpikes(true);

    rule1a.addDecodedOrigin("OR", new Function[] { new MAX(2) },
        Neuron.AXON);
    rule1b.addDecodedOrigin("AND", new Function[] { new MIN(2) },
        Neuron.AXON);
    rule1a.doneOrigins();
    rule1b.doneOrigins();
    rule2.doneOrigins();

    NEFEnsemble output = ef.make("output", 500, 5, "fuzzyoutput", false);

    net.addNode(in);
    net.addNode(A);
    net.addNode(B);
    net.addNode(C);
    net.addNode(D);
    net.addNode(rule1a);
    net.addNode(rule1b);
    net.addNode(rule2);
    net.addNode(output);

    A.addDecodedTermination("in", new float[][] { new float[] { 1f, 0f, 0f,
        0f } }, .005f, false);
    B.addDecodedTermination("in", new float[][] { new float[] { 0f, 1f, 0f,
        0f } }, .005f, false);
    C.addDecodedTermination("in", new float[][] { new float[] { 0f, 0f, 1f,
        0f } }, .005f, false);
    D.addDecodedTermination("in", new float[][] { new float[] { 0f, 0f, 0f,
        1f } }, .005f, false);

    net.addProjection(in.getOrigin(FunctionInput.ORIGIN_NAME), A
        .getTermination("in"));
    net.addProjection(in.getOrigin(FunctionInput.ORIGIN_NAME), B
        .getTermination("in"));
    net.addProjection(in.getOrigin(FunctionInput.ORIGIN_NAME), C
        .getTermination("in"));
    net.addProjection(in.getOrigin(FunctionInput.ORIGIN_NAME), D
        .getTermination("in"));

    rule1a.addDecodedTermination("B", new float[][] { new float[] { 1f },
        new float[] { 0f } }, .005f, false);
    rule1a.addDecodedTermination("C", new float[][] { new float[] { 0f },
View Full Code Here

    network.setName("Integrator");

    Util.debugMsg("Network building started");

    Function f = new ConstantFunction(1, 1f);
    FunctionInput input = new FunctionInput("input", new Function[] { f }, Units.UNK);

    // uiViewer.addNeoNode(uiInput);

    NEFEnsembleFactory ef = new NEFEnsembleFactoryImpl();
    NEFEnsemble integrator = ef.make("integrator", 500, 1, "integrator1", false);
    Termination interm = integrator.addDecodedTermination("input",
        new float[][] { new float[] { tau } }, tau, false);
    Termination fbterm = integrator.addDecodedTermination("feedback",
        new float[][] { new float[] { 1f } }, tau, false);

    network.addNode(integrator);
    Thread.sleep(1000);
    network.addNode(input);
    Thread.sleep(1000);
    // UINEFEnsemble uiIntegrator = new UINEFEnsemble(integrator);
    // uiViewer.addNeoNode(uiIntegrator);
    // uiIntegrator.collectSpikes(true);

    // UITermination uiInterm =
    // uiIntegrator.showTermination(interm.getName());
    // UITermination uiFbterm =
    // uiIntegrator.showTermination(fbterm.getName());

    network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME), interm);
    Thread.sleep(500);
    network.addProjection(integrator.getOrigin(NEFEnsemble.X), fbterm);
    Thread.sleep(500);

    /*
     * Test removing projections
     */

    network.removeProjection(interm);
    Thread.sleep(500);
    // add the projection back
    network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME), interm);
    Thread.sleep(500);
    /*
     * Add probes
     */
    Probe integratorXProbe = network.getSimulator().addProbe("integrator", NEFEnsemble.X, true);
View Full Code Here

    network.setName("Integrator");

    Util.debugMsg("Network building started");

    Function f = new ConstantFunction(1, 1f);
    FunctionInput input = new FunctionInput("input", new Function[] { f },
        Units.UNK);

    // uiViewer.addNeoNode(uiInput);

    NEFEnsembleFactory ef = new NEFEnsembleFactoryImpl();
    NEFEnsemble integrator = ef.make("integrator", 500, 1, "integrator1",
        false);
    Termination interm = integrator.addDecodedTermination("input",
        new float[][] { new float[] { tau } }, tau, false);
    Termination fbterm = integrator.addDecodedTermination("feedback",
        new float[][] { new float[] { 1f } }, tau, false);

    network.addNode(integrator);
    Thread.sleep(1000);
    network.addNode(input);
    Thread.sleep(1000);
    // UINEFEnsemble uiIntegrator = new UINEFEnsemble(integrator);
    // uiViewer.addNeoNode(uiIntegrator);
    // uiIntegrator.collectSpikes(true);

    // UITermination uiInterm =
    // uiIntegrator.showTermination(interm.getName());
    // UITermination uiFbterm =
    // uiIntegrator.showTermination(fbterm.getName());

    network.addProjection(input.getOrigin(FunctionInput.ORIGIN_NAME),
        interm);
    Thread.sleep(500);
    network.addProjection(integrator.getOrigin(NEFEnsemble.X), fbterm);
    Thread.sleep(500);
View Full Code Here

 
  public static Network CreateNetwork() throws StructuralException {
    NetworkImpl network = new NetworkImpl();
   
    Function f = new ConstantFunction(1, 1f);
    FunctionInput input = new FunctionInput("input", new Function[] { f }, Units.UNK);
   
    network .addNode(input);
   
    return network;
  }
View Full Code Here

TOP

Related Classes of ca.nengo.model.impl.FunctionInput

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.