Ejemplo n.º 1
0
        /// <summary>
        /// Construct RBF network.
        /// </summary>
        ///
        /// <param name="inputCount">The input count.</param>
        /// <param name="hiddenCount">The hidden count.</param>
        /// <param name="outputCount">The output count.</param>
        /// <param name="t">The RBF type.</param>
        public RBFNetwork(int inputCount, int hiddenCount,
                          int outputCount, RBFEnum t)
        {
            if (hiddenCount == 0)
            {
                throw new NeuralNetworkError(
                          "RBF network cannot have zero hidden neurons.");
            }

            var rbf = new IRadialBasisFunction[hiddenCount];

            // Set the standard RBF neuron width.
            // Literature seems to suggest this is a good default value.
            double volumeNeuronWidth = 2.0d / hiddenCount;

            _flat = new FlatNetworkRBF(inputCount, rbf.Length, outputCount, rbf);

            try
            {
                // try this
                SetRBFCentersAndWidthsEqualSpacing(-1, 1, t, volumeNeuronWidth,
                                                   false);
            }
            catch (EncogError)
            {
                // if we have the wrong number of hidden neurons, try this
                RandomizeRBFCentersAndWidths(-1, 1, t);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Construct RBF network.
 /// </summary>
 ///
 /// <param name="inputCount">The input count.</param>
 /// <param name="outputCount">The output count.</param>
 /// <param name="rbf">The RBF type.</param>
 public RBFNetwork(int inputCount, int outputCount,
                   IRadialBasisFunction[] rbf)
 {
     _flat = new FlatNetworkRBF(inputCount, rbf.Length, outputCount, rbf)
     {
         RBF = rbf
     };
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Construct RBF network.
 /// </summary>
 ///
 public RBFNetwork()
 {
     _flat = new FlatNetworkRBF();
 }