-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
48 lines (41 loc) · 937 Bytes
/
Copy pathmain.py
File metadata and controls
48 lines (41 loc) · 937 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from models.nn_model import NeuralNetwork
from layers.dense import Dense
from layers.dropout import Dropout
from activations.relu import ReLU
from activations.sigmoid import Sigmoid
from activations.softmax import Softmax
from optimizers.sgd import SGD
from losses.mse import MSE
from losses.cross_entropy import CategoricalCrossEntropy
from evaluation.metrics import accuracy
from optimizers.adam import Adam
import numpy as np
# input
X = np.array([
[0,0],
[0,1],
[1,0],
[1,1]
],dtype = np.float32)
y = np.array([
[0,1],
[1,0],
[1,0],
[0,1]
],dtype = np.float32)
layers = [
Dense(2, 4),
ReLU(),
Dropout(0.3),
Dense(4, 2),
Softmax()
]
model = NeuralNetwork(layers)
model.compile(
loss=CategoricalCrossEntropy(),
optimizer=Adam(lr=0.1)
)
model.fit(X, y, epochs=200, batch_size=16, lambda_=0.001,verbose = False)
model.evaluate(X, y)
preds = model.predict(X)
print(preds)