From fb647d8c34eae0701d954fb377f15d85dbe0f188 Mon Sep 17 00:00:00 2001 From: Falguni Ghosh <falguni.ghosh@fau.de> Date: Sun, 15 Oct 2023 21:00:44 +0000 Subject: [PATCH] Upload New File --- 1_DL_base/NeuralNetwork.py | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 1_DL_base/NeuralNetwork.py diff --git a/1_DL_base/NeuralNetwork.py b/1_DL_base/NeuralNetwork.py new file mode 100644 index 0000000..7e0cc90 --- /dev/null +++ b/1_DL_base/NeuralNetwork.py @@ -0,0 +1,51 @@ +import numpy as np +import copy + + +class NeuralNetwork: + input_tensor = None + label_tensor = None + + def __init__(self, optimizer): + self.optimizer = optimizer + self.layers = [] + self.loss = [] + self.data_layer = None + self.loss_layer = None + + def forward(self): + + input_tensor, label_tensor = self.data_layer.next() + self.input_tensor = np.copy(input_tensor) + self.label_tensor = np.copy(label_tensor) + + for i in self.layers: + input_tensor = i.forward(input_tensor) + + return self.loss_layer.forward(input_tensor, label_tensor) + + def backward(self): + error_tensor = self.loss_layer.backward(self.label_tensor) + + for i in reversed(self.layers): + error_tensor = i.backward(error_tensor) + + def append_layer(self, layer): + if layer.trainable: + layer.set_optimizer(copy.deepcopy(self.optimizer)) + + self.layers.append(layer) + + def train(self, iterations): + + for i in range(iterations): + intermed_loss = self.forward() + self.loss.append(intermed_loss) + self.backward() + # removed weights update in + + def test(self, input_tensor): + for i in self.layers: + input_tensor = i.forward(input_tensor) + + return input_tensor -- GitLab