示例#1
0
        public void TestNetworkSumOutputPort()
        {
            var multipliers = new Dictionary <int, IReceptiveField>();

            multipliers[0] = new MulReceptiveField(0.0, 1.0);
            multipliers[1] = new MulReceptiveField(1.0, 1.0);
            multipliers[2] = new MulReceptiveField(2.0, 1.0);
            multipliers[3] = new MulReceptiveField(3.0, 1.0);
            multipliers[4] = new MulReceptiveField(4.0, 1.0);
            multipliers[5] = new MulReceptiveField(5.0, 1.0);
            multipliers[6] = new MulReceptiveField(6.0, 1.0);
            multipliers[7] = new MulReceptiveField(7.0, 1.0);
            multipliers[8] = new MulReceptiveField(8.0, 1.0);
            multipliers[9] = new MulReceptiveField(9.0, 1.0);
            // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
            // 0, 1, 0, 1, 0, 1, 0, 1, 0, 1

            var arr = Enumerable.Range(0, 10)
                      .Select(i => (double)(i % 2) * 30.0)
                      .ToArray();

            Assert.AreEqual(arr.Length, multipliers.Count);

            var port = new NetworkSumOutputPort(arr, multipliers);
            var sum  = port.Get();

            Assert.AreEqual(25.0, sum);
        }
        public void TestNetworkSumOutputPort()
        {
            var multipliers = new Dictionary<int, IReceptiveField>();
              multipliers[0] = new MulReceptiveField(0.0, 1.0);
              multipliers[1] = new MulReceptiveField(1.0, 1.0);
              multipliers[2] = new MulReceptiveField(2.0, 1.0);
              multipliers[3] = new MulReceptiveField(3.0, 1.0);
              multipliers[4] = new MulReceptiveField(4.0, 1.0);
              multipliers[5] = new MulReceptiveField(5.0, 1.0);
              multipliers[6] = new MulReceptiveField(6.0, 1.0);
              multipliers[7] = new MulReceptiveField(7.0, 1.0);
              multipliers[8] = new MulReceptiveField(8.0, 1.0);
              multipliers[9] = new MulReceptiveField(9.0, 1.0);
              // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
              // 0, 1, 0, 1, 0, 1, 0, 1, 0, 1

              var arr = Enumerable.Range(0, 10)
            .Select(i => (double)(i % 2) * 30.0)
            .ToArray();
              Assert.AreEqual(arr.Length, multipliers.Count);

              var port = new NetworkSumOutputPort(arr, multipliers);
              var sum = port.Get();

              Assert.AreEqual(25.0, sum);
        }
示例#3
0
    public NetworkPorts(Neural.Network network,
                        IDictionary <int, IReceptiveField> upperNeurons,
                        IDictionary <int, IReceptiveField> lowerNeurons,
                        IDictionary <int, IReceptiveField> positionNeurons,
                        IDictionary <int, IReceptiveField> speedNeurons
                        )
    {
        this.network = network;

        this.input  = new double[network.NeuronCount];
        this.output = new double[network.NeuronCount];

        UpperTheta = new NetworkInputPort(input, upperNeurons);
        LowerTheta = new NetworkInputPort(input, lowerNeurons);
        Position   = new NetworkInputPort(input, positionNeurons);

        Speed = new NetworkSumOutputPort(output, speedNeurons);
    }
    public NetworkPorts(Neural.Network network,
    IDictionary<int, IReceptiveField> upperNeurons,
    IDictionary<int, IReceptiveField> lowerNeurons,
    IDictionary<int, IReceptiveField> positionNeurons,
    IDictionary<int, IReceptiveField> speedNeurons
  )
    {
        this.network = network;

        this.input = new double[network.NeuronCount];
        this.output = new double[network.NeuronCount];

        UpperTheta = new NetworkInputPort(input, upperNeurons);
        LowerTheta = new NetworkInputPort(input, lowerNeurons);
        Position = new NetworkInputPort(input, positionNeurons);

        Speed = new NetworkSumOutputPort(output, speedNeurons);
    }