# Generate neural network from lab import neural import numpy as np # Random generators def uniform(layer): return np.random.uniform(low = -1.0, high = 1.0, size = layer.shape) def gaussUnitDev(layer): return np.random.normal(size = layer.shape) def gaussAdaptedDev(layer): nl, _ = layer.shape stdDev = 1 / np.sqrt(nl - 1) return np.random.normal(scale = stdDev, size = layer.shape) # Network weight initialization def generate(activation, derivative, weightGenerator = None): """ Weight generator can be None generator.uniform generator.gaussUnitDev generator.gaussAdaptedDev """ net = neural.Network(activation, derivative) if (weightGenerator is not None): net.layer1 = weightGenerator(net.layer1) net.layer2 = weightGenerator(net.layer2) return net