Skip to content

JoerdonFryeman/NeuralNetwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Нейронная сеть

Проект представляет собой учебный пример нейронной сети. Он включает в себя модули для конфигурации, контроля, обработки данных, определения структуры сети, выполнения машинного обучения и визуализации.

Выполняю построение нейронной сети!

Всего слоёв: 3
Количество классов данных: 1
Количество данных в каждом классе: 1

Количество входных данных: 784

Слой: hidden_layer_first
Данные слоя: [-0.98, -0.34, -0.99, 0.96, 0.94, -0.85, -0.99, -1.0, -0.9, 0.27, 0.99, 0.99, 0.83, 0.97, 0.98, -0.51, 0.48, -0.97, -0.26, 0.99, 0.97, 0.95, -0.96, -0.92]

Слой: hidden_layer_second
Данные слоя: [-0.99, 0.91, -0.99, 0.75, 0.39, -0.75, -1.0, -0.94, 0.95, -0.46, -0.92, 0.92, -0.94, -0.62, -0.99, -0.87, -0.99, 0.6, 0.89, -0.99, -0.61, 0.88, 0.95, -0.97]

Слой: output_layer
Данные: 0.1984202913

Интерпретация данных:

┌──────────────────────────────────────────────────────┐
│                                                      │
│                    ██████████████                    │
│                    ██░░░░░░░░░░██                    │
│                    ██░░██████████                    │
│                    ██░░██                            │
│                    ██░░██████████                    │
│                    ██░░░░░░░░░░██                    │
│                    ██████████░░██                    │
│                            ██░░██                    │
│                    ██████████░░██                    │
│                    ██░░░░░░░░░░██                    │
│                    ██████████████                    │
│                                                      │
└──────────────────────────────────────────────────────┘

Построение нейронной сети завершено!

Структура проекта

  • main.py: Основной модуль для настройки, создания и обучения сети.
  • base/base.py: Модуль для загрузки конфигурационных данных и логирования.
  • config_files/logging.json: Файл конфигурации логирования.
  • data/classification.py: Модуль для классификации выходных данных сети.
  • data/data.py: Модуль работы с данными для машинного обучения.
  • encoders/image_encoder.py: Кодирующий изображения в массивы данных скрипт.
  • encoders/text_encoder.py: Кодирующий текст в массивы данных скрипт.
  • learning_data/numbers.zip: Небольшой массив изображений для тестового обучения.
  • learning_data/text.zip: Небольшой массив текстовых данных для тестового обучения.
  • machine_learning/train.py: Модуль для выполнения основного процесса машинного обучения.
  • machine_learning/weights.py: Модуль для обновления и сохранения весов.
  • network/layers.py: Модуль для создания слоёв нейронной сети.
  • network/neural_network.py: Реализующий основной класс для работы с нейронной сетью модуль.
  • tools/support_functions.py: Содержащий вспомогательные функции модуль.
  • tools/visualisation.py: Модуль для визуализации результатов работы нейронной сети.
  • tools/interpretation.py: Модуль для интерпретации результатов работы нейронной сети.
  • tests/tests.py: Модуль для тестирования различных частей проекта.

Требования

  • python: >= 3.12
  • numpy: >= 2.1
  • pillow: >= 11.2
  • Ключ класса (название каталога) данных не должен равняться нулю!

Без скрипта кодирования изображений выполните:

python main.py

Установка

Для Linux

Для установки скрипта кодирования изображений выполните:

cd encoders && python -m venv venv && source venv/bin/activate && pip install --upgrade pip && pip install -r requirements.txt && cd ../ && python main.py

Запуск

Для Linux

Для запуска основного процесса выполните:

cd encoders && source venv/bin/activate && cd ../ && python main.py

Настройка

Параметры обучения

  • training (default: False): Активация режима обучения нейросети.

  • enable_text_encoder (default: True, True): Включение работающего с текстовыми данными модуля (В режиме обучения должны быть установлены в положение False).

  • enable_image_encoder (default: False): Включение работающего с изображениями модуля.

  • init_func (default: xavier): Выбор метода инициализации весов: uniform, xavier, he

  • epochs (default: 1000): Количество эпох для обучения.

  • learning_rate (default: 0.001): Скорость обучения.

  • error_tolerance (default: 0.001): Допустимый уровень ошибки.

  • regularization (default: 0.001): Параметр регуляризации.

  • lasso_regularization (default: False): Использовать Lasso регуляризацию.

  • ridge_regularization (default: True): Использовать Ridge регуляризацию.

Лицензия

Этот проект разрабатывается под лицензией MIT.

Поддержать с помощью Биткоина:

bc1qewfgtrrg2gqgtvzl5d2pr9pte685pp5n3g6scy

Releases

No releases published

Packages

 
 
 

Contributors

Languages