Beispiel #1
0
        public Brain(List <IReceptor> receptors, List <IEffector> effectors, NeuralNetwork network = null)
        {
            _receptors = receptors;
            _effectors = effectors;
            var inputCount = 0;

            foreach (var r in _receptors)
            {
                inputCount += r.Values.Count;
            }
            var outputCount = _effectors.Count;

            if (network == null)
            {
                var r = new Random();

                // MultilayerPerceptron
                //var newNetwork = new MultilayerPerceptron(inputCount, outputCount, ActivationFunctions.Sigmoid);
                //for (int i = 0; i < r.Next(2, 5); i++)
                //	newNetwork.AddLayer(r.Next(3, 10));
                //newNetwork.Connect();

                // SimpleNetwork
                var hidden = new List <int>();
                for (int i = 0; i < r.Next(1, 4); i++)
                {
                    hidden.Add(r.Next(2, 6));
                }
                var newNetwork = new SimpleNetwork(inputCount, outputCount, ActivationFunctions.BinaryStep, hidden.ToArray());
                for (int i = 0; i < hidden.Count * 3; i++)
                {
                    newNetwork.Id += "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[r.Next(62)];
                }

                network = newNetwork;
            }
            _network = network;
        }
	void Start()
	{
		sNetwork = GetComponent<SimpleNetwork>();
        //pMove = GetComponent<Move>();
	}
Beispiel #3
0
 /// <summary>
 /// Инициализируем две подсети: сверточную и полносвязную.
 /// </summary>
 /// <param name="inputHeight">Высота изображений</param>
 /// <param name="inputWidth">Ширина изобржений</param>
 public Web(int inputHeight, int inputWidth)
 {
     convNet   = new Convolutional_Network(inputHeight, inputWidth);
     simpleNet = new SimpleNetwork();
     simpleNet.AddInputLayer(inputHeight * inputWidth);
 }