diff --git a/src/neural_network.py b/src/neural_network.py new file mode 100644 index 0000000..7643357 --- /dev/null +++ b/src/neural_network.py @@ -0,0 +1,30 @@ +from layer import Layer +import numpy as np +from abc import ABC, abstractmethod + + +class NeuralNetwork(ABC): + @property + @abstractmethod + def layers(self) -> list[Layer]: + pass + + @abstractmethod + def forward(self, x: np.ndarray) -> np.ndarray: + pass + + +class SequentialNetwork: + __layers: list[Layer] + + def __init__(self, layers: list[Layer]): + self.__layers = layers + + def forward(self, x: np.ndarray) -> np.ndarray: + for layer in self.__layers: + x = layer.forward(x) + return x + + @property + def layers(self) -> list[Layer]: + return self.__layers