瀏覽代碼

Create every weight generator

DricomDragon 5 年之前
父節點
當前提交
e8cc1c94ba
共有 1 個文件被更改,包括 9 次插入6 次删除
  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)