Skip to content

Latest commit

 

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Реализация многослойного перцептрона (MLP)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages