From 2247fdd7ac2ebc1d55d5f16586f510c88c9e1b81 Mon Sep 17 00:00:00 2001 From: HombreLaser Date: Mon, 11 Sep 2023 17:55:59 -0600 Subject: Add the neural network class --- neural_network.py | 18 ++++++++++++++++++ utils.py | 6 ++++++ 2 files changed, 24 insertions(+) create mode 100644 neural_network.py create mode 100644 utils.py diff --git a/neural_network.py b/neural_network.py new file mode 100644 index 0000000..81361e5 --- /dev/null +++ b/neural_network.py @@ -0,0 +1,18 @@ +import numpy +from utils import random_array + +CYRILLIC_ALPHABET = ['I', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ë', 'Ж', 'З', + 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', + 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', + 'Ь', 'Э', 'Ю', 'Я'] + +"""The neural network class.""" +class NeuralNetwork: + def __init__(self, learning_rate: float, input_resolution: int) -> None: + self.learning_rate = learning_rate + self.output_layer_size = len(CYRILLIC_ALPHABET) + self.input_layer_size = input_resolution ** 2 + self.hidden_layer_size = round((self.input_layer_size + self.output_layer_size) / 2) + self._hidden_weights = random_array(self.hidden_layer_size, self.input_layer_size) + self._output_weights = random_array(self.output_layer_size, self.hidden_layer_size) + diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..d068023 --- /dev/null +++ b/utils.py @@ -0,0 +1,6 @@ +import numpy +from random import random + +def random_array(rows: int, columns: int): + random_matrix = [[random() for x in range(rows)] for y in range(columns)] + return numpy.asarray(random_matrix) -- cgit v1.2.3