Symbol Neural Lab
Нейросеть для рисованных символов
Движок: запуск…

Библиотека символов

Создавайте именованные классы и добавляйте варианты одного непрерывного штриха. После отпускания указателя линия сглаживается, делится на отрезки примерно по 10 пикселей, переводится в координаты 0…1 и интерполируется ровно в 100 точек.

Символы

Имя — это класс, который будет предсказывать модель.

0 / 0

Редактор варианта

Рисуйте одним движением до отпускания мыши, пера или пальца.

Новый
Сначала добавьте символ и выберите его в списке.
1 непрерывный штрих
Нет линии Выход: 100 × (x, y)

Варианты рисования

Чем разнообразнее реальные варианты, тем устойчивее распознавание.

0

Обучение моделей

Настройте архитектуру, искусственное размножение примеров и условия остановки. Эпоха — один полный проход модели по учебному набору; пакет (batch) — небольшая часть примеров, обрабатываемая за один шаг.

Ход обучения

Loss — величина ошибки: обычно она должна уменьшаться. Accuracy — доля правильных ответов.

Ожидание
Эпоха
0
Loss
Val loss
Val accuracy

Модель ещё не обучается.

Ошибка (loss)
Точность (accuracy)

Сгенерированные образцы

Все созданные примеры доступны постранично. Метка показывает учебную или проверочную часть; один исходный вариант никогда не попадает в обе.

0

Сохранённые модели

Архитектура и веса хранятся локально в этом браузере.

0

Тестирование модели

Выберите сохранённую модель кнопкой Play, нарисуйте символ одним штрихом и отпустите указатель. Softmax — выходной слой, превращающий оценки классов в относительные доли; их удобно читать как уверенность, но это не гарантированная статистическая вероятность.

Рисунок для распознавания

Модель не выбрана.

Нет модели
Анализ после отпускания
Нет линии Движок: —

Результат

Все классы отсортированы от наиболее к наименее подходящему.

?
Здесь появится ответ модели Выберите модель и нарисуйте символ.

SDD-0003 · Обратная связь и мобильный тест

Spec Driven Development — разработка, в которой требования, реализация, проверки и доказательства связаны между собой.

Статус и область версии

Status: Implemented. Базовая версия SDD-0002 дополнена сохранением исправленных примеров и тестовым экраном без прокрутки страницы на смартфоне.

Требования и трассировка

  • R-LIB-01 Именованные символы и несколько вариантов одного штриха. → DrawingPad, saveCurrentSample.
  • R-LIB-02 Сглаживание, шаг около 10 px, координаты 0…1 и 100 пар. → processDrawing.
  • R-DATA-01 / ML-001 Стратифицированное разделение выполняется по исходным вариантам до аугментации. → stratifiedSplitSources.
  • R-DATA-02 / ML-004 Настраиваемое выравнивание количества примеров каждого класса. → buildPartitionDataset.
  • R-DATA-03 / ML-006 Положение сохраняется либо форма центрируется и вписывается. Одинаковая обработка применяется при обучении и тестировании. → applyNormalizationMode.
  • R-TRAIN-01 Настраиваемая архитектура, оптимизатор, аугментация и автоостановка. → getTrainingSettings, createModel.
  • R-TRAIN-02 / ML-002 Ручная остановка и лимит времени проверяются после каждого пакета; модель сохраняется после хотя бы одного выполненного пакета. → callbacks onBatchEnd.
  • R-PERF-01 / PERF-001 До запуска оцениваются параметры, набор, память и размер модели; чрезмерная конфигурация блокируется. → estimateTrainingPlan.
  • R-EVAL-01 / EVAL-001 После восстановления лучших весов заново вычисляются train/validation-метрики, точность по классам и матрица ошибок. → evaluateModel.
  • R-MODEL-01 / MODEL-001 Модель хранит версию приложения и TensorFlow.js, ревизию и отпечаток библиотеки, seed, состав частей данных, предобработку и распределение классов.
  • R-STORAGE-01 / STORAGE-002 Один JSON экспортирует и восстанавливает библиотеку, настройки, метаданные и веса моделей. → exportBackup, importBackupFile.
  • R-TEST-01 После отпускания штриха выбранная модель выдаёт победителя и полный отсортированный рейтинг. → classifyPoints.
  • R-FEEDBACK-01 / FEEDBACK-001 Пользователь подтверждает победителя или выбирает правильный символ; исходный тестовый штрих добавляется в библиотеку с происхождением обратной связи. → addTestDrawingToSymbol.
  • R-UX-02 / UX-003 На смартфонах тестирование занимает доступную высоту экрана без прокрутки документа; длинные рейтинги и список исправлений ограничены внутренними областями. → body.is-testing-mode.
  • R-PLATFORM-01 WebGL используется для аппаратного ускорения, CPU — как выбранный или резервный движок. → switchBackend.
  • R-UX-01 Один HTML, mobile-first, без сервера; внешняя зависимость подключается по CDN.

Ключевые решения

  • D-001. Для честной проверки у каждого обучаемого класса требуется минимум два исходных варианта: хотя бы один для train и один для validation.
  • D-002. Итоговая матрица ошибок строится по неизменённым исходным вариантам validation, а не по их искусственным копиям.
  • D-003. Seed фиксирует состав и преобразования набора; вычисления разных видеочипов могут всё равно дать небольшие численные различия.
  • D-004. Импорт сначала проверяет и временно сохраняет новые модели; текущие данные заменяются только после успешной подготовки.

Критерии приёмки

  • Ни один sampleId не встречается одновременно в train и validation, включая все его аугментированные копии.
  • При включённом балансе каждый класс имеет одинаковое количество сгенерированных примеров внутри каждой части.
  • Остановка после первого выполненного пакета завершает обучение и сохраняет пригодную к загрузке модель.
  • Опасный план обучения требует подтверждения, а конфигурация выше жёсткого лимита не запускается.
  • Карточка модели показывает пересчитанную validation accuracy; окно оценки содержит точность каждого класса и матрицу ошибок.
  • Экспортированный JSON после импорта восстанавливает библиотеку, настройки и доступные веса моделей.
  • После перезагрузки сохранённая модель загружается и выдаёт полный рейтинг классов.
  • Кнопка «Правильно» добавляет исходный штрих в класс-победитель; «Неправильно» раскрывает остальные текущие символы библиотеки и добавляет штрих в выбранный класс только один раз.
  • При ширине 320 px и типичной высоте смартфона документ в режиме тестирования не имеет вертикальной прокрутки; интерфейс остаётся доступным между шапкой и нижней навигацией.
  • При недоступности WebGL автоматический режим использует CPU.

Evidence — доказательства

Backlog после SDD-0003

  • WebGPU, офлайн-кэш CDN, порог «неизвестный символ», повороты при аугментации и сравнение моделей остаются за пределами этой версии.

Оценка модели

Матрица ошибок: строки — настоящий символ, столбцы — предсказанный.