I have built a neural network from scratch that can have as many hidden layers and units in them as the user wants. I have used sigmoid and ReLU as activation functions. The neural network is trained according to gradient descent algorithm.
As for the dataset, I have generated a dataset using the make_moons function from scikit_learn.