Пример #1
0
        public String MappingToString(NeuralDataMapping mapping)
        {
            var result = new StringBuilder();

            result.Append(BipolalToString((BiPolarMLData)mapping.From));
            result.Append(" -> ");
            result.Append(BipolalToString((BiPolarMLData)mapping.To));
            return(result.ToString());
        }
Пример #2
0
        public void RunBAM(BAMNetwork network, NeuralDataMapping data)
        {
            var line = new StringBuilder();

            line.Append(MappingToString(data));
            network.Compute(data);
            line.Append("  |  ");
            line.Append(MappingToString(data));
            app.WriteLine(line.ToString());
        }
Пример #3
0
        /// <summary>
        /// Compute the network for the specified input.
        /// </summary>
        /// <param name="input">The input to the network.</param>
        /// <returns>The output from the network.</returns>
        public NeuralDataMapping Compute(NeuralDataMapping input)
        {
            bool stable1 = true, stable2 = true;

            do
            {
                stable1 = PropagateLayer(this.synapseF1ToF2,
                                         input.From, input.To);
                stable2 = PropagateLayer(this.synapseF2ToF1, input.To,
                                         input.From);
            } while (!stable1 && !stable2);
            return(null);
        }
Пример #4
0
        /// <summary>
        /// Compute the network for the specified input.
        /// </summary>
        ///
        /// <param name="input">The input to the network.</param>
        /// <returns>The output from the network.</returns>
        public NeuralDataMapping Compute(NeuralDataMapping input)
        {
            bool stable1;
            bool stable2;

            do
            {
                stable1 = PropagateLayer(_weightsF1ToF2, input.From,
                                         input.To);
                stable2 = PropagateLayer(_weightsF2ToF1, input.To,
                                         input.From);
            } while (!stable1 && !stable2);
            return(null);
        }
Пример #5
0
        public void Execute(IExampleInterface app)
        {
            this.app = app;
            var pattern = new BAMPattern();

            pattern.F1Neurons = INPUT_NEURONS;
            pattern.F2Neurons = OUTPUT_NEURONS;
            var network = (BAMNetwork)pattern.Generate();

            // train
            for (int i = 0; i < NAMES.Length; i++)
            {
                network.AddPattern(
                    StringToBipolar(NAMES[i]),
                    StringToBipolar(PHONES[i]));
            }

            // test
            for (int i = 0; i < NAMES.Length; i++)
            {
                var data = new NeuralDataMapping(
                    StringToBipolar(NAMES[i]),
                    RandomBiPolar(OUT_CHARS * BITS_PER_CHAR));
                RunBAM(network, data);
            }

            app.WriteLine();

            for (int i = 0; i < PHONES.Length; i++)
            {
                var data = new NeuralDataMapping(
                    StringToBipolar(PHONES[i]),
                    RandomBiPolar(IN_CHARS * BITS_PER_CHAR));
                RunBAM(network, data);
            }

            app.WriteLine();

            for (int i = 0; i < NAMES.Length; i++)
            {
                var data = new NeuralDataMapping(
                    StringToBipolar(NAMES2[i]),
                    RandomBiPolar(OUT_CHARS * BITS_PER_CHAR));
                RunBAM(network, data);
            }
        }
Пример #6
0
        /// <summary>
        /// Compute the network for the specified input.
        /// </summary>
        /// <param name="input">The input to the network.</param>
        /// <returns>The output from the network.</returns>
        public NeuralDataMapping Compute(NeuralDataMapping input)
        {
            bool stable1 = true, stable2 = true;

            do
            {

                stable1 = PropagateLayer(this.synapseF1ToF2,
                        input.From, input.To);
                stable2 = PropagateLayer(this.synapseF2ToF1, input.To,
                        input.From);


            } while (!stable1 && !stable2);
            return null;
        }