Для начала немного несуществующих деревень и сёл


Сальтолово
Ничичи
Каверная Голяна
Придориусловка
Старотипенки
Кюканово
Кутюшевка
Верхний Стед
Сабаревка
Зеленокировка
Хадонские Выселки
Старый Куля
Октяга
Ржиново
Черемошно
Голодионово
Александрово-Полейково
Подлопаново
Малое Сусовое
Горы-Чусалы
Чубравяково




Зачем и почему


Всем привет, меня зовут Илья, я занимаюсь компьютационной биологией и биохимией, в свободное время я заставляю нейросети страдать ерундой.


Основываясь на аналогичных проектах (названия британских деревень, названия мест в Орегоне, названия различных цветов и их RGB), я решил научить нейросеть создавать названия несуществующих населенных пунктов


В качестве нейросети я решил воспользоваться torch-rnn, которую достаточно легко установить и настроить. Список городов и сел я нашел тут (можно скачать все в формате csv). С csv пришлось немного повозиться, чтобы привести ее к utf-8, после чего я запихнул ее в нейросеть и оставил на пару часов. Когда тренировка модели закончилась я взял небольшой сампл и получил следующий результат:


root@themachine:~/Projects/torch-rnn/torch-rnn> th sample.lua -checkpoint cv/checkpoint_9000.t7 -length 1000 -gpu -1
Рязовка
Ропотино
Сигомино
Рохва
Родионый Ваньково
Сухон
Сидоровское
Торя
Хруда
Черно-Тальское
Арха
Барданово
Вергежль
Ввешеватьи
Тетловка
Трожликово
Туровый Покска
Феддал
Ямное
Малое Чешовка
Белогорка
Веткино
Пестовское
Свягуты Борсусы
Рясная Стенино
Саморово
Траниково
Титы
Ужера
Федяково
Уралово
Хвороск
Ровки
Отрада
Сафонгальское
Сосновка
Сопцы
Суховодное
Севица
Селяново
Сисарово
Султа
Сидорино
Тарбин
Ульяновка
Шараки
Чернышево
Чубанный Поселок
Хворево
Филатово
Дубровка
Донграяс
Илехово
Канькинка
Кемно
Карлыково
Ключкино
Котовка
Котлигово
Кривцовицкое
Малый Майдан
Якуши
Любисно
Малый Дубуж
Малая Средка
Михайловка
Новая Месловка
Новекудаково
Ньино
Новорежнеево
Озерки
Олпов
Парсенево
Подвицы
Новотильичево
Половье
Покровка
Пролетарский
Прюпки
Прижа
Старгарево
Сятка
Тарасово
Емейлово
Удяжье
Филекали
Дубровка
Задарье
Зеленые Комара
Касмаково
Кикулиха
Комары
Кондреевка
Кожарба
Кукран
Куржак админ территория г Ильмица
Мановкий
Маржинская
Нурайка
Погор
Новая Бауль
Нурская Нива
Ойватино


Подробные инструкции


  1. Скачать и установить torch-rnn, проще всего это сделать следуя подробным инструкциям в их репо
  2. Скачать названия всех российских городов в формате csv отсюда
  3. Привести csv в надлежащий вид — удалить все ненужные столбцы, перекодировать в utf-8, можно убрать все скобки и точки.
  4. Дальше можно следовать инструкциям на гитхабе, однако я настоятельно рекомендую не запариваться с поддержкой gpu, я потратил на это 2 часа, ничего не добился и забросил это дело. Просто pre-process data, train the model and sample the model.
  5. Пока нейросеть тренирует модель можно набросать черновик поста на Хабре (можно и пропустить)
  6. Поиграться с разными чекпоинтами и температурой самплинга, попутно пытаясь найти самыe смешные варианты



Вот вам еще городов и сел на 10000 знаков, если интересно:


города и села

root@themachine:~/Projects/torch-rnn/torch-rnn> th sample.lua -checkpoint cv/checkpoint_9000.t7 -length 10000 -gpu -1
биконое
Яхвтовово
Максимово
Надеждино
Нинка Орзык
Новая Байка
Мытный
Нозади
Осельное
Осиновский
Ольгино
Павловка
Пенчиково
Рожник
Песожтево
Рожково
Рускачевка
Родашевка
Севержое
Семоново
Рогиши
Семенково
Скуратель
Сумба
Рожки
Сергово
Даптово
Екатериновка
Заволдновоссй
Задовская
Долдинная
Черепошки
Юбино
Андрофновоа
Алехный
Барановка
Весеевский
Грачаевское
Грузный
Горьково
Дебровый
Доринская Булак
Украсовское
Тельховка
Теренный
Тереволок
Тишицкая
Цирядан Ачтым
Нниколаборгуновка
Урутский Калмак
Лизвановка
Лобогозная
Чеченогорное
Шунаган
Шиманской
Шумная
Балкастохта
Верхний Алба
Весновица
Синтямь
Усть-Нижна
Шедведа
Александровка
Бары
Бобрионский
Булдым
Бурин
Мочкор
Надеждос
Обсажда
Турский Лаберя Гора
Чильянск
Ушая Пониш
Федолевка
Черный Поповик
Акулов
Нельсконопай
Верхняя Жары
Гашулав
Хавачатный
Язунга
Яблонтаях
Алкари
Ясная Озанчума
Белый Майка
Бибизына
Буз
Торышева админ территория г Карыленка
Холва
Кучейка
Малиновка
Межжуг
Новобордний админ территория Горякин
Новоникаильино
Ново-Аргей
Мухково
Подгорское
Поселанки
Прондусное
Руйский
Рогата
Скарачево
Самарай
Скориково
Судирепичи
Слободка
Радиоминское
Петросновка
Решлка
Переповка
Роговой Нага
Самаркан
Терех-Большая Присляны
Зорено админ территория г Ивкичева Гора
Калиники
Колчатов
Красная Петровка
Красноуразрихановка
Крывцы
Ленинский
Лобовтцы
Лоховой
Махсков
Буйменка
Млавловка
Васильевка
Васькуль
Вадское
Вимково
Высокое
Гаденус
Терлино
Дрождегоркитино-Косышевка
Красово
Крюкова Борска
Крутяки
Крутиенка
Кривая Поляны
Клиногор
Мочелейка
Недроново
Осочино
Озерки
Окольная
Окулино
Романовка
Тимочное
Утдурбамск
Текиши
Екатериновская
Долгоилитонино
Золотой Окат Мейдаз
Эстом
Черемшинка
Эконзеро
Ярышки
Шумково
Юженичи
Батарт
Большая Курмуча
Борыки
Бутмугород
Вахурево
Великий Загуда
Высока
Васильевский каш
Верхневовихи
Верхняя Ченькара
Воробовка
Воелково-Парковка
Стремецкий
Глучаево
Судаково
Самарино
Селдов
Передоровка
Русники
Роговое
Сапыл
Сосновский
Стишина
Тарасово
Тахно-Алек
Чевчино
Капичеевка
Зеленая Кузняй
Канасимовка
Леткурское
Малогорка
Наговская 2-я
Нижняя Слободка
Новая Мельцов
Мольты
Новая Слободка
Новая Михайловка
Преохоча
Озерки админск
Жижня-Катышево
Зеленцев
Займожное
Ивановка
Желевское
Заря
Заветная
Ишкашев
Карадогун
Кичкуйло
Куруегали
Мая
Морозово
Мурей
Нижний Сурт
Норач
Пинцевский
Попавки
Прудки
Романовка
Светлое
Северков
Рынькино
Севичаный
Гудск
Фоминская
Чернилянка
Арнай
Больев
Граженьевский
Данцева админ территория г Внуткалазка
Шара
Анистой
Альское
Анчелек
Мокреевка
Можарское
Новоперественка
Новокужгомовой
Новорокиловский
Отрадное
Первомайский
Поховичи
Полковская
Призанка
Пришки
Присудиха
Саниловка
Черновка
Шасловское Сакля
Юголок
Черешня
Шалеево-Шана-Хриновская
Арчуровский
Арденгельское
Ашатниково
Глухово
Сафчище
Рудобильное
Самоново
Тинбельга
Хрещеевка
Ярыбиха
Анцено
Таши-Анаклы
Тустахи
Тетери Инскары
Тимошкино
Усть-Карасьга
Чубала
Чизаняс
Эракино
Анхарь
Ултниха
Зальнеун
Жили
Дехта
Екологлаково
Загольново
Замощино
Заречное
Желозеровка
Долье
Чехвядниково
Захаровка
Домонино
Дречки
Дубовое
Ельнево
Журавицы
Дракево
Елица
Ильино
Каракино
Казино
Каланка
Каремково
Колопа
Коность
Костема
Красный Послок
Лазаревка
Лухино
Манька
Минаевское
Надеждино
Неронцево
Никольский
Новая Слобода
Поповка
Покровское
Подлечное
Поляковское
Плетино
Приобель
Черноусово
Акарьевка
Бабет
Берковец
Бодоновская
Александровский
Юксатовский
Аннишный
Барьяковка
Верхное Горогово-Гор
Усочная
Чебусово
Чернеево
Шелухино
Шельгино
Городище
Дворикл
Фадово
Гиенки
Дврино
Ермаково
Житкино
Иваньково
Еростино
Ероссино
Дремково
Хлесное
Дрягино
Залуки
Зиново
Залевино
Жарино
Друня
Завочмицы
Дубовая
Замошье
Заводской
Елизавод
Замошье
Засерехи
Заходтино
Знаменка
Зуевское
Караево
Каменичи
Кашеевка
Казанское
Кирдихово
Коломно
Кочеренково
Кобровное
Комарово
Колунина
Копанк
Кондратково
Коровкино
Комсотоли
Короволухово
Иваново
Кязьмино
Клепино
Знаменец
Ключищи
Козинки
Кольстиново
Косики
Котоково
Котыловка
Красная Горка
Крива
Кругловяя Гилановка
Красный Октюл
Максуты
Аксак
Алдяк
Азары
Мендленьки
Нижний Вихвит
Николка
Островка
Пинцево
Подлесховское
Погорелец
Подозерка
Подъелой
Танюфли
Теметовское
Семельина
Садовый
Серезцово
Серебкино
Татинское Гойровка
Глининский
Глячки
Верх-Сосновка
Сиверцовка
Спобчаево
Тепловка
Телявка
Тимильяж
Узерный
Осальный админ территория г Ильошка Слобода
Сулдозеро
Русский Удя
Рогаженки
Реченский
Тересово 1-е
Утоложка
Шатпушкино
Аласовский
Андроповщина
Агарная Поляна
Аксиновка
Арусовка
Большевик
Бородовка
Васильевское
Гурячево
Детковичи
Черепской
Бустыри
Цвой-Нично-Чибичи
Урамшанка
Юрызиловка
Алоборьевка
Бездлановка
Большая Сверногловка
Большой Шак
Брованец
Бычки
Большой Путь
Бородино
Бурачев
Бурминский
Веселый
Протас
Вон
Войново
Васильцы
Верхняя-Казашная
Богдайск-Калма
Щиплина
Андреево
Артозеро
Агаканок
Ябдат
Верхняя Нижняя-Пороза
Вирьяная 2
Воросисовка
Большой Куншина
Бобровка
Большая Тронев
Бордовичи
Большие-Ворошка
Богобле
Блавники
Васильевка
Варково
Наримовка
Волокос
Алексеевский
Анитский
Касуенова Гора
Костеры
Курково
Лопатино
Манкаровка
Луньковская
Малиновка
Малоразмалово
Мопитова
Незазаров
Михайровка
Нижнее Первое Метвец
Новый Бартягоры
Петровка
Скрабово
Сухолотово
Владимировка
Вычи
Верхняя Поляна
Волковичи
Головардихново 1-е
Горкино
Горховка
Данышево
Дмитровка
Долгово
Домчаново
Еки
Залнинское админ территория г Картач
Имелевая
Кармышев
Кинделиха
Конкинский
Косьма
Ласхогольск
Незвозное
Нижний Камен
Неломка-Дворье
Нагольный адмка
Уры
Ямняково
Андрево
Буда
Буда
Юктер
Батней
Ветеринская
Березовка
Гудя
Шишинка
Усть-Арюйаль
Уротьевка
Шапки
Апросимово
Березовка
Большое Камённое
Варяновка
Бизерки
Болотна
Борисово
Введенка
Шшилово
Будыкова
Василевка
Грепилово
Троицкое
Трынинская
Требутаново
Ушутовка
Туровое
Шибково
Большевая Ключей
Бундин
Верхнеголдан
Вождусстье
Вишневка
Ворсовец
Глебовое
Давалино
Зиплечье
Заражменщина
Защуевка админ территория г Вериты
Золотай
Холленский
Ужуха
Зелентьей Кара
Ислак
Кедровка
Лепное
Ярцево
Лпивамкино
Ленинка
Кульшенская Полимандвинок
Лесной
Лубинга
Ломкино
Лощовая
Марьевка
Миркал
Новая Богозево
Новодюхновка
Морозовка
Новосерлеканово-Родинскийс
Минеевка
Можангурская
Новоселова
Островное
Пичинский
Прозовый Кузьми
Старый Яр
Самраркалук
Сактово
Юлаушка
Александрово
Аниной
Бай Артем
Верхняя Кородербинка
Тарасаково
Яричево
Аниселье
Магдрь
Барановка
Богородской
Верхняя Ареда
Верхняя Кура админ территория г Сичинкусан
Больший Матага
Большой Сарсукай
Валуй
Гоболонзе
Ирдымей
Красный Шап
Крутцы
Ладу
Куруньин
Листвозерск
Курубаза
Луанды
Малый Будаха
Малеевка
Веселый Лог
Новое Даничкинская Новоскины
Тухмалы
Хонецкое
Хочевая
Тутилово
Торчунская Сосновка
Селин
Сосновское
Синяконники
Старая Селтамска
Следай
Старые Ларячи
Струки
Субино
Растылка
Рязановка
Ржавец
Сельцо
Семшино
Субохманцево
Самониха
Головино
Даркиный админ территория г Сламычи
Духля
Заречниково
Ильинский
Леонкали
Юрьевский
Артакадьев
Великий Берег
Весерка
Вышвановка
Гусевка
Екатерино
Исанцево
Караулик
Каширково
Лавловка
Кущера
Мальцево
Лушкино
Лебеда
Лецкое
Кулековка
Лонинец
Лога
Лебетиха
Макарово
Макаренка
Малогалевский
Малаховец
Майловская
Малая Сурван
Наволок
Накулово
Никитюзовский
Пасец
Сакхаты
Сыянец
Сильнинская-Заложний
Сокол
Сополого
Старый Уханду
Плота
Турнал
Утник
Уротныч
Ильинский
Курьив
Лебедевка
Малое Юркино
Мельманово
Оборье
Овукода
Палида
Павчуха
Перелиха
Песды
Нижняя Щагинка
Новая Маевска
Мысканово
Петропавовка
Пухорное
Подгорный
Почимураки
Сухонополье
Сковлезьео
Срезгий
Смолинка
Страсково
Спасская
Горняусино
Голубиновка
Глиндаевка
Гусево
Горстинское
Грибков Поселок
Гуолец
Ижра
Кабаново
Кашенки
Каменка
Колосово
Косюрьево
Кокогорская
Коловкино
Кочерягино
Кожино
Костроповка
Красная
Кривосеретьевская
Зубенка
Хмеревка
Хотлявиха
Рудаковка
Тумызлы
Толопьево
Черкасское
Ясной Олешка
Богородищево
Власье
Болюши
Висеевка
Волочнее
Выгоровский
Востокское
Вороматки
Ворчино
Вышомобка
Вострой
Гадние Строги
Гусино
Годковичи
Гусино
Щекалово
Филино
Федоровка
Жердево
Знаменка
Захаухово админ территория г Ивдель
Ермолавково
Жедемка админ территория г Берега
Зольево
Красной админ территория г Верхняя Сейга
Черта
Шестеполь
Черная Таш
Алашево
Ариданово
Гадриха
Семеницы
Семяхино
Слудкое
Тальтубы алминцы
Та польной
Тарачиковка
Чаткарка
Шешлая
Кочербечевская
Шубулово
Шутов
Аннино
Ажбанино
Андрониха
Айтайка
Киривковой
Кеурское
Кщива
Красная Роги
Крюковка
Шишкино
Красный За-Ю-ты
Кулябьевка
Ленинское
Мирный
Логиновка
Матыркино
Малый
Малояйний
Маньги
Междрино
Муденка
Михайловка
Монской
Молоддничково
Московская
Наколжа
Павловка
Новойска
Новищевская
Окулино
Тромсы
Ухово
Орехово
Октябрьский
Таптелиха
Тихинино
Еньсельдкое
Усть-Чекеева
Шалганы
Ширко
Александровка
Антополье
Черкино
Анисово
Адыгино
Терешки
Шилов
Аксеновский
Чосновка
Холозы
Малая Груденга админ территория г Пеленоц
Ожепка
Ташарово
Фрустов
Телловенка
Тюда
Эрлева
Яблутки
Буйчуз-Хыг
Букальние
Грибарев
Джеменное
Шарасова Гора
Зебеняк
Четка
Александровка
Андреевка
Бабловка
Васюты
Власьево
Вожинка
Борисовка
Боровики
Вулаи
Рындахи
Новая Слфача
Восточная
Гаветов
Горжов
Дмитриевка
Дуюлябриха
Добречка
Доеды
Ипамково
Ильибка
Калагаево
Калешевка
Камено
Керзра
Кошкаево
Кувашск
Логаново
Малые Лукуки
Малиновский
Малые Бережга
Малая Новцы
Малый Хетерино
Мариша Орсуши
Негозёры
Прикениково
Пурдуб
Перши
Сафарово
Сигадахтиманск
Учела
Анажусная
Васильевка
Большой Вершем
Голбозеро
Дадова
Ддоровский
Знигорье
Зеленый Моя
Забатовка
Дистьгин
Таловка
Уса
Унаевское
Чюслаков
Щекила
Шиевский
Чернопольна
Андросово админ территория г Карагудан
Шипорская 2-я
Вина
Воскаровка
Сеньколовка
Старое Гароново
Старая Рудня
Старое Родиорево
Столинское
Старки
Таврина-Талюя Марковка
Талиново
Ханино
Чернодурильный
Чернозделево
Арафоиново
Гомаровка
Горелка
Гоячи
Ежино
Каменка
Кожаровка
Кубас
Кагантые
Корсуколь
Лескатово
Мановка
Малый Кызаны
Нахарьево
Никитино
Покровка
Новый Пая
Раджаны
Речег
Средняя
СЛапая Полье
Реджинская
Сивалово
Поляны
Старый Хутор
Сенеты
Темлябово
Усть-Петами
Хатпухово
Ускутор
Чирки
Федорово
Запрейновка
Зиновещино
Зубаново
Дешницы
Доропашкино
Долгия Боровяжи
Дростское
Долгие
Додеситное
Ильигино
Коваленки
Кортово
Котвомово
Крутицы
Липятково
Ленть
Крамово
Красилково
Красная Рог
Кулучево


Если будет свободное время, попробую сделать что-то подобное со всеми названиями СНГ и/или сравнить вымышленные названия разных республик.

Комментарии (26)


  1. Sdima1357
    27.11.2017 22:06

    Классно! Если пропустить законы через NN можно и законы сочинять. Вместо думы.Представляете сколько денег можно сэкономить. :)

    Если серьезно то действительно здорово. Давно не видел настолько бесполезную, но очень прикольную программу.


    1. oleg0xff
      28.11.2017 02:00
      +1

      Давно не видел настолько бесполезную<..> программу.

      Ну не торопитесь назвать ее бесполезной. Генерировать рандомные карты для игр или фильмов/мультфильмов с правдоподобными названиями очень может даже пригодиться.


      1. Sdima1357
        28.11.2017 02:16

        Не подумал. Согласен


      1. Zoolander
        28.11.2017 11:25

        дефолтные юзернеймы добавьте


      1. Tenebrius
        28.11.2017 12:08
        +1

        Только для этого нейросети не нужны. Те же сети Маркова справляются не хуже.
        Хотя мне статья и результат понравились.


  1. worldmind
    27.11.2017 22:40

    Прикольно тем, что названия нужны не только уникальные, но желательно не пересекающиеся с обычными словами.
    Надо такую же штуку для генерации коротких и уникальных имён.
    Кстати, Старая Рудня есть в Беларуси.


    1. Hvorovk
      28.11.2017 05:47

      еще Озерки есть:)


      1. KiloLeo
        28.11.2017 20:41

        Покровка, Михайловка и Пролетарский.
        А так ничо. Теперь пора учить стихи сочинять. Ну или хокку для начала.


        1. lobzanoff
          29.11.2017 15:37

          У Лео Каганова такая программка была, и сочиняла стихи безо всяких нейросетей еще в 90е, под DOS.


  1. aamonster
    27.11.2017 23:08

    Тот же вопрос, что к автору предыдущей статьи по генерации текста посредством RNN:
    А с наивным алгоритмом "построить ppm-модель и распаковать с её помощью массив случайных чисел" сравнить не хотите? Благо, ppm-based архиваторов в исходниках хватает.
    (В сравнении интересно как качество названий, так и скорость работы и требования к памяти)


  1. SDKiller
    28.11.2017 05:13

    Так что в списках — сгенерированные названия? Если так, то в большом списке есть названия, которые точно существуют.
    И что выделено жирным шрифтом?


  1. zuwr2t
    28.11.2017 06:37

    Как-то ошибся раскладкой при запросе в гугле, а оказалось что есть такое озеро в Челябинской области. Вобщем, не уверен что есть смысл в тренировке сетей )


  1. hardsome
    28.11.2017 07:39

    Некоторые названия придуманных населенных пунктов напоминают матерные. Было бы интересно посмотреть на результаты тренинга сети на подборке «список матерных слов» или подборке «названия населенных пунктов» + «список матерных слов».


  1. SeLarin
    28.11.2017 08:02

    Компьютационная биология? Вы это написали всерьёз? Вам надо больше читать текстов на русском языке.


  1. AnutaU
    28.11.2017 09:50

    В детстве развлекалась тем, что разглядывала карту области и выписывала оттуда всякие загадочные топонимы. Интересно, какой процент сгенерированных названий совпадает с реально существующими в итоге…


  1. RiseOfDeath
    28.11.2017 09:53

    Филекали


    Мне кажется так себе название. А вообще точень полезно для некоторых игр с генерируемыми названиями городов (например OpenTTD)


  1. norlin
    28.11.2017 11:08
    +2

    Вот вам еще городов и сел на 10000 знаков, если интересно:
    города и села

    Дворикл

    Кубикл

    image


  1. masai
    28.11.2017 11:20
    +1

    Маловато для статьи. Она почти вся состоит из названий. В самом же тексте только пара ссылок и инструкция по запуску сетки, которая есть и в README к репозиторию.


    Вот было бы интересно почитать о том, как именно эта сетка работает, какая в ней архитектура, почему она так хорошо работает, как самому подготовить данные для сетки и как самому такие сетки писать и обучать.


  1. masai
    28.11.2017 11:23

    однако я настоятельно рекомендую не запариваться с поддержкой gpu, я потратил на это 2 часа, ничего не добился и забросил это дело.

    Если у вас видеокарта от Nvidia, то там проблем быть никаких не должно. Просто ставите cunn и cutorch и всё работает. Главное, не забыть драйвера и dev-пакет с CUDA поставить. У меня всегда без проблем работало.


    Что именно у вас не получалось?


  1. roodz
    28.11.2017 12:09

    Федяково

    Малый Майдан

    Этих Майданов у нас, на мордовских землях, столько, что покрышек не хватит.


  1. Psionic
    28.11.2017 12:47

    Почему все создатели нейросетей так любят питон? Я все хочу начать их учить и спотыкаюсь об этот питон который я не люблю.


    1. masai
      28.11.2017 13:44

      1. Конкретно здесь для написания самой нейронной сети использовался Lua.
      2. Чрезвычайная простота освоения языка. Требуется минимум кода даже для довольно сложных действий.
      3. Куча библиотек для: анализа данных (pandas), вычислений с матрицами (numpy), визуализации (matplotlib, seaborn), создания нейронных сетей (tensorflow, pytorch и т.д.). И всё это очень оптимизировано и отлично работает на GPU.
      4. Лёгкость прототипирования в Jupyter.

      Если нелюбовь к Python — единственное, что вас останавливает, то лучше побороть себя. Это как пытаться стать слесарем, но не любить отвёртки.


      1. erwins22
        28.11.2017 15:08

        Результат того, что у с++ нет стандартной графической библиотеки.


        1. masai
          28.11.2017 15:23

          А даже если бы и была, это мало что изменило бы. Это не самое важное при программировании нейронных сетей. С языком C++ сложно организовать REPL, язык сложный (намного сложнее Python) и часто многословный. Ключевым преимуществом могла бы стать производительность, но у Python программа почти всё время проводит в библиотеках, которые и так написаны на C/C++/Fortran.


          Скажем, если взять тот же Tensorflow, скажем, то у него есть API для C++. Но вот что-то мало кто пишет на нём даже с учётом наличия Tensorboard, которым всё прекрасно визуализируется.


          1. erwins22
            28.11.2017 16:28

            Вероятно вы правы. Только библиотек отображения функций в с++ нет потому что нет графической библиотеки, которой нет, так как нет потребности у потребителей, которые перешли на питон так как на С++ нет легкого вывода функций так как…

            В С++ не было потребности в лямбдах пока они не появились.


    1. KiloLeo
      30.11.2017 15:30
      +1

      ИМХО, питон (как и матлаб) хорош для работы с данными благодаря наличию блокнотов Jupyter (у матлаба нет блокнотов, но есть их аналог). Работая с данными надо выполнять действия и проверять результат после каждого шага, применять шаги в разной последовательности, экспериментировать. Это не написание кода по спецификации. Тут нужна интерактивная среда для исследований, а не компиляция и сборка.
      Также сила питона в том, что от моделирования можно сразу перейти к продуктивному коду. В отличие от, например матлаба, где сначала исследователь данных разрабатывает модель, тестирует, а потом отдаёт программистам на C# её кодить. Цикл разработки резко ускоряется, а цена падает.
      Ну и ещё он бесплатный и доступен на всех платформах, причём уже встроен в них.