Parcourir la source

Create every weight generator

DricomDragon il y a 5 ans
Parent
commit
e8cc1c94ba
1 fichiers modifiés avec 9 ajouts et 6 suppressions
  1. 9 6
      python/lab/generator.py

+ 9 - 6
python/lab/generator.py

@@ -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)