Inheritance: INeuralNetworkPattern
Esempio n. 1
0
 public IMLMethod Create(string architecture, int input, int output)
 {
     int count;
     int num2;
     SOMPattern pattern2;
     IList<string> list = ArchitectureParse.ParseLayers(architecture);
     if ((((uint) count) - ((uint) input)) >= 0)
     {
         while (list.Count != 2)
         {
             throw new EncogError("SOM's must have exactly two elements, separated by ->.");
         }
         if ((((uint) input) + ((uint) input)) <= uint.MaxValue)
         {
             ArchitectureLayer layer = ArchitectureParse.ParseLayer(list[0], input);
             ArchitectureLayer layer2 = ArchitectureParse.ParseLayer(list[1], output);
             if ((((uint) count) + ((uint) count)) >= 0)
             {
                 count = layer.Count;
                 num2 = layer2.Count;
                 pattern2 = new SOMPattern();
             }
         }
         else
         {
             goto Label_00B9;
         }
         pattern2.InputNeurons = count;
     }
     pattern2.OutputNeurons = num2;
     SOMPattern pattern = pattern2;
     Label_00B9:
     return pattern.Generate();
 }
Esempio n. 2
0
        /// <summary>
        /// Create a SOM.
        /// </summary>
        ///
        /// <param name="architecture">The architecture string.</param>
        /// <param name="input">The input count.</param>
        /// <param name="output">The output count.</param>
        /// <returns>The newly created SOM.</returns>
        public IMLMethod Create(String architecture, int input,
            int output)
        {
            IList<String> layers = ArchitectureParse.ParseLayers(architecture);
            if (layers.Count != 2)
            {
                throw new EncogError(
                    "SOM's must have exactly two elements, separated by ->.");
            }

            ArchitectureLayer inputLayer = ArchitectureParse.ParseLayer(
                layers[0], input);
            ArchitectureLayer outputLayer = ArchitectureParse.ParseLayer(
                layers[1], output);

            int inputCount = inputLayer.Count;
            int outputCount = outputLayer.Count;

            var pattern = new SOMPattern {InputNeurons = inputCount, OutputNeurons = outputCount};
            return pattern.Generate();
        }