Comments 28
Если серьезно то действительно здорово. Давно не видел настолько бесполезную, но очень прикольную программу.
Надо такую же штуку для генерации коротких и уникальных имён.
Кстати, Старая Рудня есть в Беларуси.
Тот же вопрос, что к автору предыдущей статьи по генерации текста посредством RNN:
А с наивным алгоритмом "построить ppm-модель и распаковать с её помощью массив случайных чисел" сравнить не хотите? Благо, ppm-based архиваторов в исходниках хватает.
(В сравнении интересно как качество названий, так и скорость работы и требования к памяти)
Так что в списках — сгенерированные названия? Если так, то в большом списке есть названия, которые точно существуют.
И что выделено жирным шрифтом?
Филекали
Мне кажется так себе название. А вообще точень полезно для некоторых игр с генерируемыми названиями городов (например OpenTTD)
Вот вам еще городов и сел на 10000 знаков, если интересно:
города и села
…
Дворикл
vs.
Маловато для статьи. Она почти вся состоит из названий. В самом же тексте только пара ссылок и инструкция по запуску сетки, которая есть и в README к репозиторию.
Вот было бы интересно почитать о том, как именно эта сетка работает, какая в ней архитектура, почему она так хорошо работает, как самому подготовить данные для сетки и как самому такие сетки писать и обучать.
однако я настоятельно рекомендую не запариваться с поддержкой gpu, я потратил на это 2 часа, ничего не добился и забросил это дело.
Если у вас видеокарта от Nvidia, то там проблем быть никаких не должно. Просто ставите cunn и cutorch и всё работает. Главное, не забыть драйвера и dev-пакет с CUDA поставить. У меня всегда без проблем работало.
Что именно у вас не получалось?
- Конкретно здесь для написания самой нейронной сети использовался Lua.
- Чрезвычайная простота освоения языка. Требуется минимум кода даже для довольно сложных действий.
- Куча библиотек для: анализа данных (pandas), вычислений с матрицами (numpy), визуализации (matplotlib, seaborn), создания нейронных сетей (tensorflow, pytorch и т.д.). И всё это очень оптимизировано и отлично работает на GPU.
- Лёгкость прототипирования в Jupyter.
Если нелюбовь к Python — единственное, что вас останавливает, то лучше побороть себя. Это как пытаться стать слесарем, но не любить отвёртки.
А даже если бы и была, это мало что изменило бы. Это не самое важное при программировании нейронных сетей. С языком C++ сложно организовать REPL, язык сложный (намного сложнее Python) и часто многословный. Ключевым преимуществом могла бы стать производительность, но у Python программа почти всё время проводит в библиотеках, которые и так написаны на C/C++/Fortran.
Скажем, если взять тот же Tensorflow, скажем, то у него есть API для C++. Но вот что-то мало кто пишет на нём даже с учётом наличия Tensorboard, которым всё прекрасно визуализируется.
Также сила питона в том, что от моделирования можно сразу перейти к продуктивному коду. В отличие от, например матлаба, где сначала исследователь данных разрабатывает модель, тестирует, а потом отдаёт программистам на C# её кодить. Цикл разработки резко ускоряется, а цена падает.
Ну и ещё он бесплатный и доступен на всех платформах, причём уже встроен в них.
Как научить нейросеть придумывать названия российских населенных пунктов