Jensen-holm commited on
Commit
38e3b7b
1 Parent(s): 14841f9

init weights and biases

Browse files
nn/__pycache__/nn.cpython-310.pyc CHANGED
Binary files a/nn/__pycache__/nn.cpython-310.pyc and b/nn/__pycache__/nn.cpython-310.pyc differ
 
nn/__pycache__/train.cpython-310.pyc CHANGED
Binary files a/nn/__pycache__/train.cpython-310.pyc and b/nn/__pycache__/train.cpython-310.pyc differ
 
nn/nn.py CHANGED
@@ -24,6 +24,8 @@ class NN:
24
  self.target = target
25
  self.data = data
26
 
 
 
27
  self.wh: np.array = None
28
  self.wo: np.array = None
29
  self.bh: np.array = None
@@ -48,6 +50,18 @@ class NN:
48
  assert isinstance(f, Callable)
49
  self.func_prime = f
50
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  @classmethod
52
  def from_dict(cls, dct):
53
  """ Creates an instance of NN given a dictionary
 
24
  self.target = target
25
  self.data = data
26
 
27
+ self.input_size = len(features)
28
+
29
  self.wh: np.array = None
30
  self.wo: np.array = None
31
  self.bh: np.array = None
 
50
  assert isinstance(f, Callable)
51
  self.func_prime = f
52
 
53
+ def set_bh(self, bh: np.array) -> None:
54
+ self.bh = bh
55
+
56
+ def set_wh(self, wh: np.array) -> None:
57
+ self.wh = wh
58
+
59
+ def set_bo(self, bo: np.array) -> None:
60
+ self.bo = bo
61
+
62
+ def set_wo(self, wo: np.array) -> None:
63
+ self.wo = wo
64
+
65
  @classmethod
66
  def from_dict(cls, dct):
67
  """ Creates an instance of NN given a dictionary
nn/train.py CHANGED
@@ -4,7 +4,20 @@ import pandas as pd
4
  import numpy as np
5
 
6
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  def train(nn: NN) -> dict:
 
8
  X_train, X_test, y_train, y_test = train_test_split(
9
  nn.X,
10
  nn.y,
 
4
  import numpy as np
5
 
6
 
7
+ def init_weights_biases(nn: NN) -> None:
8
+ np.random.seed(88)
9
+ bh = np.zeros((1, 1))
10
+ bo = np.zeros((1, 1))
11
+ wh = np.random.randn(1, nn.input_size) * np.sqrt(2 / nn.input_size)
12
+ wo = np.random.randn(1, nn.hidden_size) * np.sqrt(2 / nn.hidden_size)
13
+ nn.set_bh(bh)
14
+ nn.set_bo(bo)
15
+ nn.set_wh(wh)
16
+ nn.set_wo(wo)
17
+
18
+
19
  def train(nn: NN) -> dict:
20
+ init_weights_biases(nn=nn)
21
  X_train, X_test, y_train, y_test = train_test_split(
22
  nn.X,
23
  nn.y,