Данный проект реализует обучение простейшего персептрона с помощью генетического алгоритма для распознавания одного конкретного черно-белого изображения размером 4x4 пикселя.
-
Убедитесь, что у вас установлен uv. Если не установлен, то есть подробная простая инструкция на сайте uv :
-
После установки выполните данный команды запустив powershell из рабочей папки (открыть папку проекта и в пути (там где C:/...) ввести
powershell):uv sync uv lock
-
Укажите своё целевое изображение в
Data/correct_img.py:My_img = np.array( [1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1], dtype=np.uint8) # 1 — чёрный, 0 — белый NET = 0.4 # Пороговое значение активации
-
При необходимости измените параметры в
main.py:# Параметры POPULATION_SIZE = 50 # Сколько будет хромосом в эпохе EPOCH = 500 # Количество эпох для обучения, но может найти лучший вес раньше и остановит обучение MUTATION_RATE = 0.3 # Вероятность мутаций SHOW = False # False - короткая информация для поколений, True - подробная информация для поколений CHECK_RESULTS_ON = True # Falase - не проверяет в конце результат, True - идёт проверка веса на идеальность STATS_SHOW = True # False - не отображает график в конце, True - отображает график обучения в конце. Если True, то не забудьте закрыть окно с графиком для окончания работы программы PAR = int(len(population)*0.2) # Изменять коэффициент от 0.0 до 1.0. Определяет сколько процентов популяции будет скрещиваться
-
Запустите основной скрипт обучения через uv:
uv run main
-
Итоговые веса сохраняются в:
Data/Save_weights/best_weights.txtКаждую 10-ую эпоху сохраняется лучший вес в
checkpoint_weights.txt -
Для распознавания своих изображений:
- Поместите PNG-файлы (размер 4x4, черно-белые) в папку:
Data/Pictures_for_recognize - Запустите визуализацию и распознавание:
uv run Recognize_app.py
- Стрелками на клавиатуре (влево, вправо) переключайтесь между изображениями
При этом вы увидите результат активации, сравнение с порогом и визуальное окно с переключением между картинками (по клавишам ← и →). Ваша картинка будет добавлена автоматически, но важно убедиться что нет её дубликатов, в вашем исходном датасете.
- Поместите PNG-файлы (размер 4x4, черно-белые) в папку:
-
Вы можете посмотреть сохранённый график и мета данные об обучении в "Data/Statistic/Graphs" и "Data/Statistic/Metadata". Названия файлов привязаны к времени запуска обучения и создаются только после обучения
Если вы поместили свою правильную картинку в папку и после распознавания активировалась только одна картинка (и она верная) — значит весовая конфигурация подходит. В ином случае — стоит переобучить.
Разработано для учебных целей. Все веса и параметры можно свободно настраивать. Поставьте пожалуйста звезду, если вам помогла данная программа ⭐

