summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2023-09-11 17:55:59 -0600
committerHombreLaser <sebastian-440@live.com>2023-09-11 17:55:59 -0600
commit2247fdd7ac2ebc1d55d5f16586f510c88c9e1b81 (patch)
treee770d435784362465205a0c8c9bf7d5784e6d1b2
parent41cf8074bd145fdd8f066b7db52c92dec6cb4fa2 (diff)
Add the neural network class
-rw-r--r--neural_network.py18
-rw-r--r--utils.py6
2 files changed, 24 insertions, 0 deletions
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)