Sigmora
Сценарии

Нейросеть с нуля на Python: пошаговое руководство

03
Отладка обучения

Отладка скрипта обучения, который падает

Ваш Python-файл должен обучать небольшую сеть, но он останавливается с ошибкой или выводит странные числа. Sigmora открывает файл, находит важные строки, запускает команду обучения через Shell и показывает реальный вывод в карточке, чтобы вы видели, что произошло, а не гадали. Начните с одного файла. Агент не обучает модель сам, потому что это делает ваш код, и это может занять столько времени, сколько нужно. Цикл короткий: чтение, запуск, сравнение, изменение. Вы выбираете папку, режим и решаете, какое изменение принять. Используйте только код, данные и компьютеры, которые вам принадлежат или которые вам разрешено использовать, и делайте каждый эксперимент достаточно маленьким, чтобы его можно было повторить.

01

Откройте папку

Выберите рабочую папку, в которой находятся ваш скрипт обучения, файл конфигурации и логи. Инструменты работы с файлами работают в этой папке, а list_dir показывает, что в ней содержится. Храните данные, которые вам разрешено использовать, в том же месте, чтобы все пути в вашем скрипте оставались короткими. Инструменты работы с файлами используют эту папку.

02

Запросите чтение

Попросите Sigmora прочитать скрипт обучения и объяснить слои, функцию потерь и цикл. read_file и grep цитируют строки, о которых идет речь, чтобы вы могли проверить объяснение по своему коду. Режим Plan only ничего не меняет. Запросите снова, если какой-то блок все еще непонятен.

03

Запустите команду

Укажите команду обучения и выберите режим. Shell запускает ее в Windows, в WSL или по SSH на вашем собственном сервере, а карточка показывает реальный вывод и код выхода. Python должен быть установлен там, где запускается команда. Обучение может занять много времени на вашем оборудовании.

04

Проверьте результат

Раскройте карточку и прочитайте выведенную ошибку или значения функции потерь. Код выхода 0 означает только то, что скрипт завершился без ошибки, поэтому оценивайте числа самостоятельно на данных валидации, которые модель еще не видела, и записывайте, что вы увидели. Затем решите, какое следующее небольшое изменение внести.

Пример: один нейрон обучается логическому вентилю И на чистом Python

perceptron_and.py
# AND gate: one neuron (perceptron) learns the table
rows = [((0,0),0), ((0,1),0), ((1,0),0), ((1,1),1)]
w = [0.0, 0.0]
b = 0.0
rate = 0.1
for epoch in range(20):
    for x, target in rows:
        total = w[0] * x[0] + w[1] * x[1] + b
        out = 1 if total > 0 else 0
        err = target - out
        w[0] += rate * err * x[0]
        w[1] += rate * err * x[1]
        b += rate * err
print("weights:", w, "bias:", b)

Этот файл обучает один нейрон логическому вентилю И с коэффициентом обучения и коротким циклом обновления весов, затем выводит веса и смещение. Используется чистый Python, без библиотек и случайных чисел, поэтому каждый запуск дает одинаковый результат. Запустите его через Shell, измените количество эпох и запустите снова, чтобы увидеть, что изменится в выводе весов.

Разбор: отслеживание эксперимента с CNN на Python

Прочитайте код обучения

Прежде чем что-либо изменять, Sigmora читает. read_file открывает ваш скрипт обучения, list_dir показывает папку с данными, а grep находит строки, определяющие слои, функцию потерь и цикл. Вы видите текст файла в карточке, поэтому можете сравнить размеры слоев с формой ваших данных. Агент ничего не меняет на этом этапе. Модели нейронных сетей для логических вентилей, такие как файл И выше, являются классическим первым упражнением, и тот же шаг чтения подходит для нейросети с нуля на Python, которую вы написали месяц назад и уже не помните. Запросите любой блок простыми словами или переключитесь в режим Plan only, если хотите текстовое объяснение без действий. Читайте каждое объяснение рядом с кодом и проверяйте, соответствует ли оно тому, что вы написали.

Запустите команду обучения

Выберите Auto-run для запуска, которому вы доверяете, или Ask first, если хотите утвердить действия, которые что-то меняют. Shell запускает вашу команду обучения, например python perceptron_and.py, в выбранной вами среде, а карточка показывает реальный вывод и код выхода. Раскройте карточку, чтобы прочитать полный лог скрипта сверточной нейронной сети построчно. Обучение может занять столько времени, сколько нужно, и Sigmora не ускоряет его. Когда функция потерь не сходится, лог — это первое место, где вы это видите. Смотрите на числа, а не только на код выхода, потому что код выхода 0 означает только то, что скрипт завершился. Затем решите, нужно ли изменять код, и запросите diff только если это необходимо.

Исправьте ошибку формы или медленное снижение функции потерь

edit_file изменяет скрипт и показывает diff. В режиме Ask first ничего не записывается, пока вы не примете diff, тогда как Auto-run применяет изменение сразу. Ошибка формы обычно означает, что данные и первый слой не совпадают, поэтому исправление часто заключается в изменении одного числа. Функция потерь, которая почти не меняется, может указывать на коэффициент обучения, на метки, которые не соответствуют данным, или на модель, которая еще не может переобучиться на маленьком батче. Сначала попробуйте этот маленький батч. Переобучение и недообучение — это разные проблемы, поэтому смотрите на функцию потерь обучения и валидации, прежде чем что-то менять крупно. Создание нейронной сети для шахмат — это более крупный проект, но он начинается так же. После редактирования снова запустите команду через Shell и сравните новые числа со старыми.

Сохраните результаты в CSV-файл

Для сравнения запусков вам нужны числа в файле. write_file создает CSV-файл в вашей рабочей папке, или append_file добавляет одну строку за эпоху, а read_file загружает его снова, чтобы агент мог разместить 2 запуска рядом. Sigmora не анализирует данные за вас; она сохраняет числа и показывает их, а вы решаете, что они означают. Отделите данные валидации от данных обучения и оставьте тестовое множество нетронутым до конца. Режим Plan only может записать следующий эксперимент как план, не запуская ничего. Когда будете готовы, переключите режим и позвольте агенту выполнить его. Прежде чем сохранить результат, откройте CSV-файл и проверьте, соответствуют ли строки тому, что напечатала карточка, и что каждый столбец подписан.

Sigmora для Windows

Попробуйте сценарий на своем проекте

Скачать Sigmora ↗