|
@@ -5,21 +5,24 @@ import numpy as np
|
|
|
|
|
|
# Random generators
|
|
|
def uniform(layer):
|
|
|
- # TODO
|
|
|
- return 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():
|
|
|
- # TODO
|
|
|
- return layer
|
|
|
+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
|
|
|
- np.random.normal
|
|
|
+ None
|
|
|
+ generator.uniform
|
|
|
+ generator.gaussUnitDev
|
|
|
+ generator.gaussAdaptedDev
|
|
|
"""
|
|
|
net = neural.Network(activation, derivative)
|
|
|
|