Как использовать


Шаг №2


Работа с программой FakeApp. Шаг №2 — Обучение нейросети

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

Создание новой модели

Если вы начинаете проект с самого начала, убедитесь, что вы скопировали новую версию модели из папки C:\FakeApp\ в папку C:\Fakes\, как это происходит в процессе установки FakeApp (см. шаг №1). В противном случае алгоритм будет работать поверх существующей модели глубокого обучения, что в итоге приведет к включению особенностей и других лиц.

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

Если вы запускали FakeApp ранее и хотите бы сохранить существующую модель, скопируйте все содержимое папки C:\Fakes\Model в другое место.

Загрузка модели

Если ранее вы сохраняли модель, то можете скопировать ее в C:\Fakes\Model для дальнейшего обучения. Также допускается использовать моделей, которые могли быть загружены из других источников (если вы столкнулись с подобными файлами).

Начало обучения

Как только вы правильно настроите папку модели, и все выровненные изображения будут очищены и готовы, перейдите на вкладку Train («Обучение»).

Убедитесь, что в именах папок присутствуют правильные косые черты, сам путь также должен содержать косую черту в конце, как показано выше.

ВАЖНО: даже если значения по умолчанию выглядят правильными, вы должны щелкнуть по каждому полю и ввести пути повторно. Если значения по умолчанию присутствуют, убедитесь, что вы повторно ввели полный путь и добавили косую черту в конце. В противном случае программа может вывести сообщение об ошибке, так как посчитает, что значения по умолчанию не загружены должным образом.
ВАЖНО: В названии всех папок и файлов можно использовать только латинские буквы, русские буквы и пробелы использовать нельзя.

Если у вас видеокарта от nVidia моделей GTX 1070 или 1080, вероятно, вы станете использовать иные настройки по умолчанию. Обладатели GTX 1080 смогут увеличить размер пакета (Batch Size) вдвое и поднять количество узлов (Nodes) до 1024 для получения более качественных результатов.

Если у вас небольшое количество виртуальной памяти (VRAM), можете уменьшить размер пакета, количество слоев (Layer) и узлов. Однако уменьшение последних двух параметров сделает компьютерную модель менее точной, что приведет к более низкому качеству. Рекомендуемые настройки таковы: Batch Size = 16 (в настоящее время недопустимы значения ниже), Layers = 4, затем начинаем уменьшать Nodes вдвое (512, 256, 128, 64 и т. д.).

Для самого ограниченного количества VRAM (2 Гб в настройках), которые пользователи подобрали опытным путем, настройки будут таковыми: Batch Size = 64, Layers = 1, Nodes = 128); или Batch Size = 32, Layers = 2, Nodes = 32; или Batch Size = 16, Layers = 2, Nodes = 64.

Для запуска можете просто использовать настройки по умолчанию.

Для достижения оптимальной производительности потребуется закрыть все прочие приложения, затем щелкнуть по кнопке Start. В открывшемся окне вы можете наблюдать различные команды, где первая строка укажет на использование TensorFlow («Using TensorFlow backend»), ниже размещается дополнительный текст.

Как показано выше, обладатели некоторых видеокарт могут столкнуться с предупреждением «Not a failure» («Не является неисправностью»). Это не говорит об ошибке, внимания на эту надпись обращать не следует.

Если в командной строке присутствуют ошибки, наиболее распространенная причина этого – нехватка памяти. Если видна надпись «OOM» (на снимке экрана показана красным цветом), это означает, что потребуется отрегулировать параметры Batch Size, Layers или Nodes, после чего повторить попытку. Обладателям менее производительных видеокарт придется повозиться с оптимизацией данных настроек. Как только обучение будет успешно начато, вы увидите миниатюрные изображения предварительного просмотра.

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

Можно смотреть лишь на самое правое изображение, чтобы увидеть, когда оно начинает выглядеть как более-менее детализированное желаемое лицо. Как правило, требуется не менее нескольких часов (а то и больше) для достижения удовлетворительного уровня обучения модели.

Для любого выбранного окна вы можете нажать клавишу «q», в этом случае обучение будет завершено, а результат сохранен.

Мониторинг и обучение

В дополнение к предпросмотру миниаютр вы увидите изменяющийся список значений потерь, который отображается в командном окне. Меньшие значения потерь указывают на наличие высококачественной модели. В идеале вы должны стремиться к значениям потерь ниже 0,02. Если значения потерь ниже 0,02, а трансформированные лица выглядят неважно, могут потребоваться более качественные данные для обучения, или сложность вашей модели слишком низка.

Остановить обучение можно тогда, когда результат вас удовлетворит – кнопкой «q», как было описано выше.

Вы можете изменить изображения для обучения (убедитесь, что вы правильно разархивировали и очистили обучающий набор), чтобы продолжить обучение позже, если требуется сохранить файлы модели. Обязательно используйте одни и те же параметры слоев и узлов (Layers и Nodes), если вы решите продолжить обучение позже.