Welcome to the project that builds a generic neural network trained using the gradient descent algorithm.
The implementation of this part ends by building a network that works supports:
- Any number of outputs and not just limited to a single output.
- Any number of samples and not just limited to a single sample.
- Work with bias in both forward and backward passes.
- Allow stochastic and batch modes for the gradient descent.
The script named MLP.py holds a class named MLP with all necessary methods and functions to build and network.
The generic-ann-ch10.py script has an example of using the the MLP class.
import numpy
import MLP
x = numpy.array([[0, 0],
[0, 1],
[1, 0],
[1, 1]])
y = numpy.array([[0],
[1],
[1],
[0]])
network_architecture = [2]
trained_ann = MLP.MLP.train(x=x,
y=y,
net_arch=network_architecture,
max_iter=500000,
learning_rate=1,
activation="sigmoid",
GD_type="batch",
debug=True)
print("\nTraining Time : ", trained_ann["training_time_sec"])
print("Number of Training Iterations : ", trained_ann["elapsed_iter"])
print("Network Architecture : ", trained_ann["net_arch"])
print("Network Error : ", trained_ann["network_error"])
predicted_output = MLP.MLP.predict(trained_ann, x)
print("\nPredicted Output(s) : ", predicted_output)You can also check my book cited as Ahmed Fawzy Gad 'Practical Computer Vision Applications Using Deep Learning with CNNs'. Dec. 2018, Apress, 978-1-4842-4167-7 which discusses neural networks, convolutional neural networks, deep learning, genetic algorithm, and more.
