Kaynağa Gözat

Create every weight generator

DricomDragon 5 yıl önce
ebeveyn
işleme
e8cc1c94ba
1 değiştirilmiş dosya ile 9 ekleme ve 6 silme
  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)