From 40601130e0013d8797a0a2c42d674e0663b06fda Mon Sep 17 00:00:00 2001 From: kosh Date: Thu, 9 May 2024 11:55:18 +0530 Subject: [PATCH] Implement Sequential Network --- src/neural_network.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/neural_network.py 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