Як відомо, найбільше часу у програмуванні займає не написання і навіть не відладка програми (хоча хто знає), а верстка, тобто — написання інтерфейсу. Те ж справедливо для веб-сайту, адже замовник часто просить «зробити красиво», дизайнер малює прекрасний зовнішній вигляд, а програмісту потрібно інтегрувати його в готовий проект.

І ось датський стартап Uizard Technologies представив нейромережа pix2code, яка вміє «переглядати» зображення чи скріншот того чи іншого користувальницького інтерфейсу, а потім генерувати готову сторінку з усім необхідним кодом, оформленням і графічними елементами. Отриманий код майже не потрібно допрацьовувати.

Як зазначається, точність генерації вже становить 77%, так що практично автоматично можна отримати інтерфейс високої якості. Скомпільована версія прототипу нейромережі, яку планується опублікувати на GitHub, вміє генерувати інтерфейси під OS і Android, а також для веб-сайтів. При цьому поки розробники не планували відкривати вихідні коди програми, однак після сильного інтересу до неї, головний розробник Тоні Белтрамелли заявив, що исходники все ж можуть бути опубліковані. Як зазначається, набори даних для навчання нейромережі стануть доступні на GitHub після публікації (або відмови в публікації його статті на конференції NIPS 2017. Повідомлення від організаторів конференції має прийти на початку вересня, так що набори даних з’являться в репозиторії в той же час. Там будуть скріншоти GUI, відповідний код на мові програми та видача компілятора для трьох основних платформ.

Відзначається, що x2code побудована на згорткових і рекурентних нейронних мережах. Навчання на Nvidia Tesla K80 GPU зайняло трохи менше п’яти годин — за цей час система оптимізувала 109×106 параметрів для одного набору даних. Так що якщо ви хочете навчити її для трьох платформ, потрібно близько 15-ти годин. Програма може приймати на вхід значення пікселів з одного скріншота, без спеціальної обробки даних, що істотно прискорює процес.

При цьому Белтрамелли зазначив, що нейромережа можна навчити на іншому наборі даних — і тоді вона почне генерувати код на інших мовах для інших платформ. Сам автор не планує це робити, тому що розцінює pix2code як своєрідну іграшку, яка демонструє частина технологій, над якими працює його стартап. Проте будь-який бажаючий зможе форкнуть проект і створити реалізацію для інших мов/платформ.

Таким чином, створення інтерфейсів для сайтів і програм, нарешті, можна буде автоматизувати

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту і натисніть Ctrl + Enter .