/// <summary> /// Declares that the network is now complete and that connections should be created. /// </summary> public void Connect() { if (IsConnected) { throw new InvalidOperationException("The Network has already been connected"); } if (_hiddenLayers.Any()) { // Connect input to the first hidden layer Inputs.ConnectTo(_hiddenLayers.First()); // Connect hidden layers to each other if (_hiddenLayers.Count > 1) { for (int i = 0; i < _hiddenLayers.Count - 1; i++) { _hiddenLayers[i].ConnectTo(_hiddenLayers[i + 1]); } } // Connect the last hidden layer to the output layer _hiddenLayers.Last().ConnectTo(Outputs); } else { // No hidden layers, connect the input layer to the output layer Inputs.ConnectTo(Outputs); } IsConnected = true; }