/**
* @param array $layers
* @param ActivationFunction|null $activationFunction
*
* @throws InvalidArgumentException
*/
public function __construct(array $layers, ActivationFunction $activationFunction = null)
{
if (count($layers) < 2) {
throw InvalidArgumentException::invalidLayersNumber();
}
$this->addInputLayer(array_shift($layers));
$this->addNeuronLayers($layers, $activationFunction);
$this->addBiasNodes();
$this->generateSynapses();
}