{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Нейронная сеть, которая верстает сайты по картинке Статьи редакции

Прошёл почти год с того момента, как на GitHub опубликовали алгоритм pix2code. И вот ребята из FloydHub на его основе создали нейронную сеть для вёрстки страниц, которую уже можно запустить самому.

Работа алгоритма делится на три этапа:

1. Нейронной сети передаётся картинка-исходник в формате JPEG
2. Алгоритм конвертирует элементы в HTML- и CSS-код
3. На выходе получается свёрстанная версия

Чтобы получить такой результат, разработчики скармливали алгоритму скриншоты и присваивали определённые HTML-теги, в итоге получился датасет, с помощью которого можно генерировать шаблонные сайты. Ниже будут примеры.

Пример датасета

Алгоритм учится предсказывать соответствующие HTML-теги, последовательно «изучая» изображение на входе. Когда алгоритм предсказывает следующий тег разметки, он получает скриншот и все «правильные» теги HTML-разметки для этого элемента.

Примеры:

  • 250 циклов работы алгоритма;
  • 350 циклов работы алгоритма;
  • 450 циклов работы алгоритма;
  • 550 циклов работы алгоритма.

Везде выше можно посмотреть пример исходного кода, сгенерированного нейронной сетью, а вот оригинальный сайт, скриншоты которого скармливали алгоритму.

Если вы вдруг фронтенд-инженер (я нет), поделитесь в комментариях: как вам код, сгенерированный алгоритмом?

Более техническое описание проекта доступно по ссылке, а ноутбук для запуска в Jupyter лежит тут.

0
192 комментария
Написать комментарий...
Zi Super

У меня горит пукан, когда говорят, что верстальщикам конец. Я сам не верстальщик, но перед верстальщиками голову предклоняю. Хороших верстальщиков днем с огнем не сыщешь. Всё время попадаются какие-то мудаки, которые кроме лендосов ничего не делали. Как только дело касается что-то сложнее тупого вывода картинок, т.е. появляются формы таблицы и дропдауны, фильтрации, да ещё это всё надо посадить на реакт, то пиздец голову в жопу засовывают или делают месяцами.

Ответить
Развернуть ветку
Denis Shiryaev
Автор

Мне кажется верстальщикам может и правда конец, но front-end инженеры будут нужны еще очень долго и их всегда не хватает.

Ответить
Развернуть ветку
Zi Super

Уважаемый, вот я занимаю фронтендом, делаю большие приложения на JS. Поверь мне, я знаю всё про JS, но когда дело касается вёрстки, то я становлюсь беспомощным. Нет, я конечно могу кое-что сделать, но это будет не промышленный уровень, понимаешь о чем я?

У верстальщиков есть куча инструментов и знаний (всякие саасы препроцессеры, компараторы пиксельперфекта) (не только верстки, но и UX). Эффективность профессионального верстальщика в десятки раз выше чем эффективность человека, который делает вёрстку + JS и я не один такой. Всё зависит от времени и денег. Если у тебя есть время пилить вёрстку и JS - велкам. Но если всё поставлено на поток и требует высокого качества на выходе, то без проф верстальщика - никуда.

Ты можешь задрачивать верстку кнопки целый день и она потом никуда не интегрируется и будет бажной, или дать человеку, который сделает её за 30 минут и она будет работать везде.

Ответить
Развернуть ветку
Alexander Belov

Значит вы херовый фронтендер, извините за грубость, если беспомощны перед вёрсткой и перед препроцессорами.

Ответить
Развернуть ветку
Zi Super

Значит Вы не работали над сложными проектами, где требуется качество и скорость. Вот скажите мне, зачем верстальщику знать паттерны проектирования и прочие алгоритмы и приемы оптимизации кода да и вообще кучу языков программирования и шаблонизации? И в тоже время, зачем программисту знать баги CSS браузеров и как сверстать так, чтобы эффективно утилизировать GPU? Чувствует как эти 2 области ну совсем не коррелируют. Что в одном, что в другом случае нужно потратить тысячи часов чтобы стать экспертом. Если Вы всё это умеете, поздравляю, Вы - фулстек разработчик с уклонов во фронтенд.

Ответить
Развернуть ветку
Alexander Belov

"утилизировать Gpu"? Зачем верстальщикам его утилизировать? :)

Повторюсь, вы не фронтенд разработчик, если вы не разбираетесь в том, как правильно и эффективно верстать и создавать интерфейсы, которые бы работали быстро на разных устройствах. Если вы не понимаете базовые принципы: reflow, repaint и тд, то о чем можно говорить? Собеседование в любой нормальной IT компании вы не пройдёте как минимум. Мои слова подтвердят даже средние фронты, которые умеют делать приложения на реакте.

Ответить
Развернуть ветку
189 комментариев
Раскрывать всегда