The goal of this project was to build a Python Neural Network from scrath.
Class FFBPNetwork uses LayerList to create a neural network, and provides methods for training and testing using NNData. The class also includes a method for adding hidden layers and a custom exception class called EmptySetException. The train() method trains the network using a specified dataset, while the test() method tests the network using a testing set. The functions to run the network include testing and training the Iris dataset, the sine function, and the XOR function. Root Mean Squared Error (RMSE) is used to evaluate the performance of the network.