def __init__(self, sizes=list(), learning_rate=1.0, mini_batch_size=16, epochs=10):
    'Initialize a Neural Network model.\n\n        Parameters\n        ----------\n        sizes : list, optional\n            A list of integers specifying number of neurns in each layer. Not\n            required if a pretrained model is used.\n\n        learning_rate : float, optional\n            Learning rate for gradient descent optimization. Defaults to 1.0\n\n        mini_batch_size : int, optional\n            Size of each mini batch of training examples as used by Stochastic\n            Gradient Descent. Denotes after how many examples the weights\n            and biases would be updated. Default size is 16.\n\n        '
    self.sizes = sizes
    self.num_layers = len(sizes)
    self.weights = ([np.array([0])] + [np.random.randn(y, x) for (y, x) in zip(sizes[1:], sizes[:(- 1)])])
    self.biases = [np.random.randn(y, 1) for y in sizes]
    self._zs = [np.zeros(bias.shape) for bias in self.biases]
    self._activations = [np.zeros(bias.shape) for bias in self.biases]
    self.mini_batch_size = mini_batch_size
    self.epochs = epochs
    self.eta = learning_rate
Initialize a Neural Network model.

Parameters
----------
sizes : list, optional
    A list of integers specifying number of neurns in each layer. Not
    required if a pretrained model is used.

learning_rate : float, optional
    Learning rate for gradient descent optimization. Defaults to 1.0

mini_batch_size : int, optional
    Size of each mini batch of training examples as used by Stochastic
    Gradient Descent. Denotes after how many examples the weights
    and biases would be updated. Default size is 16.
def __init__(self, sizes=list(), learning_rate=1.0, mini_batch_size=16, epochs=10):
    'Initialize a Neural Network model.\n\n        Parameters\n        ----------\n        sizes : list, optional\n            A list of integers specifying number of neurns in each layer. Not\n            required if a pretrained model is used.\n\n        learning_rate : float, optional\n            Learning rate for gradient descent optimization. Defaults to 1.0\n\n        mini_batch_size : int, optional\n            Size of each mini batch of training examples as used by Stochastic\n            Gradient Descent. Denotes after how many examples the weights\n            and biases would be updated. Default size is 16.\n\n        '
    self.sizes = sizes
    self.num_layers = len(sizes)
    self.weights = ([np.array([0])] + [np.random.randn(y, x) for (y, x) in zip(sizes[1:], sizes[:(- 1)])])
    self.biases = [np.random.randn(y, 1) for y in sizes]
    self._zs = [np.zeros(bias.shape) for bias in self.biases]
    self._activations = [np.zeros(bias.shape) for bias in self.biases]
    self.mini_batch_size = mini_batch_size
    self.epochs = epochs
    self.eta = learning_rate