Spaces:
Build error
Build error
Commit
·
4c97910
1
Parent(s):
72f6f77
working on setting up the neural_network functionality
Browse files- .gitignore +4 -0
- main.py +31 -0
- neural_network/activation.py +23 -0
- neural_network/backprop.py +11 -0
- neural_network/forwardprop.py +5 -0
- neural_network/main.py +36 -0
- neural_network/opts.py +0 -0
- opts.py +0 -0
- requirements.txt +1 -0
.gitignore
CHANGED
|
@@ -127,3 +127,7 @@ dmypy.json
|
|
| 127 |
|
| 128 |
# Pyre type checker
|
| 129 |
.pyre/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
|
| 128 |
# Pyre type checker
|
| 129 |
.pyre/
|
| 130 |
+
|
| 131 |
+
.idea
|
| 132 |
+
|
| 133 |
+
.DS_Store
|
main.py
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
def random_dataset():
|
| 5 |
+
"""
|
| 6 |
+
initializes a training and
|
| 7 |
+
a testing dataset in the form
|
| 8 |
+
of numpy arrays
|
| 9 |
+
"""
|
| 10 |
+
np.random.seed(8675309)
|
| 11 |
+
return (
|
| 12 |
+
np.random.randn(10000, 10),
|
| 13 |
+
np.random.randint(5, size=(10000, 1)),
|
| 14 |
+
)
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def main(method: str, X: np.array, y: np.array):
|
| 18 |
+
pass
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
if __name__ == "__main__":
|
| 23 |
+
method = input("\nChoose a method to test: ").lower()
|
| 24 |
+
|
| 25 |
+
X, y = random_dataset()
|
| 26 |
+
main(
|
| 27 |
+
method=method,
|
| 28 |
+
X=X,
|
| 29 |
+
y=y,
|
| 30 |
+
)
|
| 31 |
+
|
neural_network/activation.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
def sigmoid(x: float) -> float:
|
| 6 |
+
return 1.0 / (1.0 + np.exp(-x))
|
| 7 |
+
|
| 8 |
+
def sigmoid_prime(x: float) -> float:
|
| 9 |
+
return sigmoid(x) / (1.0 - sigmoid())
|
| 10 |
+
|
| 11 |
+
def relu(x: float) -> float:
|
| 12 |
+
"""
|
| 13 |
+
returns the input if > 0
|
| 14 |
+
"""
|
| 15 |
+
return max(0.0, x)
|
| 16 |
+
|
| 17 |
+
def relu_prime(x: float) -> float:
|
| 18 |
+
"""
|
| 19 |
+
returns 1 if input is +
|
| 20 |
+
returns 0 if input is -
|
| 21 |
+
"""
|
| 22 |
+
return 1 if x > 0 else 0
|
| 23 |
+
|
neural_network/backprop.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
# for testing only
|
| 7 |
+
if __name__ == "__main__":
|
| 8 |
+
def test():
|
| 9 |
+
pass
|
| 10 |
+
|
| 11 |
+
test()
|
neural_network/forwardprop.py
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
def forward_prop():
|
| 4 |
+
return
|
| 5 |
+
|
neural_network/main.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
|
| 3 |
+
from neural_network.forwardprop import fp
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
def init(X: np.array, y: np.array, hidden_size: int) -> dict:
|
| 7 |
+
"""
|
| 8 |
+
returns a dictionary containing randomly initialized
|
| 9 |
+
weights and biases to start off the neural_network
|
| 10 |
+
"""
|
| 11 |
+
return {
|
| 12 |
+
"W1": np.random.randn(X.shape[1], hidden_size),
|
| 13 |
+
"b1": np.zeros((1, hidden_size)),
|
| 14 |
+
"W2": np.random.randn(hidden_size, 1),
|
| 15 |
+
"b2": np.zeros((1, 1)),
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
def main(
|
| 20 |
+
X: np.array,
|
| 21 |
+
y: np.array,
|
| 22 |
+
epochs: int,
|
| 23 |
+
hidden_size: int,
|
| 24 |
+
learning_rate: float,
|
| 25 |
+
activation_func: str,
|
| 26 |
+
) -> None:
|
| 27 |
+
wb = init(X, y, hidden_size)
|
| 28 |
+
|
| 29 |
+
for e in range(epochs):
|
| 30 |
+
|
| 31 |
+
fp()
|
| 32 |
+
bp()
|
| 33 |
+
|
| 34 |
+
# update weights and biases
|
| 35 |
+
|
| 36 |
+
|
neural_network/opts.py
ADDED
|
File without changes
|
opts.py
ADDED
|
File without changes
|
requirements.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
numpy==1.24.2
|