Нейроконструктор

Публикация № 1233974

Разработка - Системная интеграция - Интеграция

конфигурация нейронные сети Tensorflow Keras

Изучайте нейронные сети и экспериментируйте вместе с расширением конфигурации "Нейроконструктор". Навыки программирования не требуются.

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

Как работает нейроконструктор.
Нейроконструктор – не самодостаточное приложение, а комплекс программных средств. По большей части - это графический интерфейс пользователя.  Для того, чтобы все заработало должен быть установлен ряд программных продуктов. С установкой ПО, необходимого для полноценной работы нейроконструктора, вы можете ознакомиться в специальном видеоуроке на моем канале. Это несложная задача для ИТ-шника или сисадмина. Дополнительное программное обеспечение, которое мы условно будем называть бэкендом, включает интерпретатор языка Питон и его расширение Tensorflow с надстройкой Keras, а также (опционально) компилятор языка Си с поддержкой вычислений при помощи графического процессора nVidia. Отсутствие графического процессора nVidia не критично, т.к. обучение нейронных сетей допустимо с использованием ЦП. При этом значительно упрощается установка, но сильно падает скорость вычислений.

Давайте теперь определимся с устройством Нейроконструктора.
Конфигурация Нейроконструктор включает в себя, в основном, набор справочников и перечислений, соответствующих понятиям Keras, а также программных текстов для преобразования объектов конфигурации Нейроконструктор в объекты Keras и наоборот. Надстройка Keras входит в состав Tensorflow и является высокоуровневой абстракцией для облегчения работы с нейронными сетями.
Схема работы Нейроконструктора показана на рисунке 1. Конфигурация с расширением «Нейроконструктор» (1) формирует код для интерпретатора Питон (2) и запускает его. Программа на Питоне загружает надстройку Keras (3), которая, в свою очередь преобразует объекты Keras в объекты Tensorflow и вызывает последнюю для выполнения расчетов. Tensorflow, при наличии видеокарты nVidia и установленном дополнительном программном обеспечении формирует код на языке Си++ и вызывает компилятор Си++ (4). Нейроконструктор ожидает окончания выполнения программы на Питоне, после чего обрабатывает результаты.
При отсутствии графического процессора пункт 4 исключается.

 
Рисунок 1. 1) 1С:Предприятие 8.3 с расширением «Нейроконструктор»; 2) Интерпретатор Питон; 3) Tensorflow+Keras; 4) C++ с поддержкой CUDA.

Описание конфигурации
Кратко схему работу в Нейроконструкторе можно описать четырьмя действиями:

  • Подготовка данных;
  • Создание модели нейронной сети;
  • Обучение;
  • Проверка работы.

Подготовка данных.
Данные на вход нейронной сети подаются при помощи текстовых или двоичных файлов.  Последние хранятся в специальном формате Numpy (числовой Питон) расширения языка Питон и предназначены для работы с массивами. Создавать файлы в формате Numpy, а также производить некоторые операции над ними позволяет обработка «Преобразование данных» в меню «Сервис».  Преобразованию текстовых таблиц в формат Numpy служит обработка «Конструктор табличных данных».

Создание модели нейронной сети
Прежде чем начать обучение нейронной сети, необходимо создать её конфигурацию или модель. Модель нейронной сети – это понятие из надстройки Keras. Она содержит параметры слоев нейронной сети и их композицию (связи между собой) и хранится в файлах формата JSON (JavaScript Object Notation), поддержка которого, в том числе, присутствует в 1С:Предприятие. Для создания модели нейронной сети предназначен документ «Компоновка модели». Схема создания модели показана на рисунке 2. Пользователь заполняет табличную часть «Слои» из соответствующего справочника, который заранее подготовлен разработчиком и соответствует номенклатуре слоев Keras. Затем производится композиция слоев и выполняется компоновка, результатом которой является текст в формате JSON, который помещается в справочник «Модели».
 
Рисунок 2. Схема компоновки модели.

Порядок заполнения документа показан на рисунке 3. Откройте список документов «Компоновка модели» (3.1) и создайте новый документ. Присвойте имя новой модели (3.2). Заполните табличную часть «Слои»: нажмите добавить (3.3) и выберите тип слоя (3.4) из списка справочника «Слои» (3.5). Табличная часть параметров слоя заполняется автоматически в соответствии с выбранным слоем.

Рисунок 3. Компоновка модели - слои

Заполните необходимые параметры (3.6) в соответствии со спецификацией слоя, которую можно посмотреть в форме элемента справочника «Слои» (рис. 4).

Рисунок 4. Справочник "Слои"

По завершении добавления слоев (рис. 5) перейдите на закладку «Композиция» (5.1) и укажите порядок следования слоев. Добавьте строки в табличную часть "Композиция" (5.2) и заполните строки именами слоев(5.3). Нажмите кнопку «Скомпоновать модель» (5.4). Результатом компоновки будет элемент справочника «Модели», содержащий конфигурацию модели. Запишите новый элемент (5.5). В документ автоматически добавятся схема и сводка модели (5.6).

Рисунок 5. Компоновка модели - композиция

Закройте документ «Компоновка модели».

 

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

 
Рисунок 6. Обучение нейронной сети.

Порядок заполнения документа показан на рисунке 7. Откройте список документов «Обучение» (7.1) и создайте новый документ.  Выберите модель из списка справочника (7.2). В табличную часть «Образцы» автоматически добавятся слои выбранной модели, на которые подаются входные данные. В табличной части «Цели» добавятся слои, на которые подаются метки классов для обучения (7.3). Далее необходимо указать файлы данных и заполнить параметры предварительного преобразования данных перед подачей на входные и выходные слои нейронной сети. Выберите один из 3 способов загрузки: массивы Numpy, текстовая таблица или обычный текст (7.4). Укажите путь к файлам данных (7.5). Для подготовки данных можно воспользоваться обработкой «Преобразование данных» из меню «Сервис» (7.6). Она позволяет создавать, просматривать и изменять двоичные файлы массивов Numpy (рис. 8). Заполните параметры преобразования входных данных образцов и целей (7.7).

Рисунок 7. Обучение - загрузка данных

Рисунок 8. Обработка "Преобразование данных"

Заполнение параметров показано на рисунке 9. Перейдите на закладку «Параметры» (9.1) и заполните обязательные поля.

  • параметры компиляции: Функция потерь, оптимизатор и показатель качества (9.2);
  • параметры обучения: Количество эпох, Размер пакета (9.3);
  • параметры сохранения и загрузки: Сохранять сеть после обучения (9.4).

Нажмите кнопку "Обучить" для запуска обучения (9.5).

Рисунок 9. Обучение - параметры

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

Рисунок 10. Обучение - диаграмма

Если во время обучения произойдет ошибка, то вместо закладки «Диаграмма» будет активирована закладка «Текст программы» (рисунок 11), и показаны сообщения об ошибках (11.1). В таблице действий справа будет выделено ближайшее действие, соответствующее строке с ошибкой (11.2).

Рисунок 11. Обучение - текст программы

 

Проверка работы
Обученная нейронная сеть сохраняется в специальном формате Hierarchical Data Format (Иерархический формат данных) на диске. После обучения можно проверить сеть на тестовых данных. Скопируйте документ, на котором проводилось обучение, укажите пути к файлам с контрольными данными на закладке "Загрузка данных" (рисунок 7). 

Проверка работы обученной сети показана на рисунке 12. Перейдите на закладку «Оценка и прогноз» (12.1).  Нажмите кнопку «Оценить» (12.2), чтобы посмотреть потери и показатели качества сети на контрольных данных. Результаты оценки отобразятся в таблице (12.3) и отображают значения потерь и показателей качества на одной эпохе. Чем меньше значение потери, тем лучше прогноз, данный сетью. Чтобы посмотреть, как сеть распознает новые для себя данные, нажмите кнопку «Прогноз» (12.4). В результате для каждого выходного слоя в таблице прогноза можно посмотреть к какому классу сеть отнесла входные данные (12.5).

Рисунок 12. Обучение - оценка и прогноз

 

Более подробно смотрите на моем канале на ютубе, где я постепенно буду выкладывать уроки по работе в Нейроконструкторе.

Скачать файлы

Наименование Файл Версия Размер
Нейроконструктор: для 8.3.14 (и выше)
.dt 2,64Mb
03.06.20
30
.dt 0.96.0 2,64Mb 30 Скачать бесплатно
Нейроконструктор: для 8.3.13
.dt 2,49Mb
08.05.20
7
.dt 0.96.0 2,49Mb 7 Скачать бесплатно

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Cmapnep 12 20.05.20 11:15 Сейчас в теме
Очень интересная разработка и отдельный плюс бы поставил за библиотеку слоев!
2. user1404129 57 20.05.20 20:25 Сейчас в теме
(1) Спасибо! Со слоями пока не все радужно. Все описания нужно перевести на русский язык (в понятиях конфигурации). Но сначала нужно доделать видеоуроки.
3. утюгчеловек 9 21.05.20 14:26 Сейчас в теме
Это большая работа, но не понятно зачем всё это тащить в 1С? Прохожий не станет в этом разбираться, а программисту проще использовать более привычные для этого домена родные питоновские или js-ные обвязки
kuza2000; +1 Ответить
4. user1404129 57 21.05.20 15:10 Сейчас в теме
(3) Ну вообще-то программист - не единственный, на кого нацелена данная конфигурация. В идеале, конечно, чтобы получился пользовательский продукт, а программист привлекается уже для доработок. Нужен ли этот инструмент программисту? Смотря какому. Если ты знаешь только Питон, согласитесь, этого недостаточно для построения нейронных сетей. Опять-же программист будет выполнять подобного рода задачи с применением нейронных сетей разве что в качестве увлечения, т.к. кто ему будет вообще ставить задачу использовать нейронные сети? Среди начальников достаточно образованных людей, не знакомых с программированием. Вот они, ознакомившись с технологией, и могут поставить задачу программисту. А как он будет реализовывать уже зависит от его конкретно профессионального уровня. Хоть на Си++, который намного круче и js и Питона, но сложнее.
5. утюгчеловек 9 21.05.20 16:36 Сейчас в теме
(4)
В идеале, конечно, чтобы получился пользовательский продукт


Дискуссионно. Пользовательский продукт не ограничивается нейронной сетью. А обучение сети не ограничивается построением кривой обучения. Возможность стакать керасовские слои (кстати только последовательно) это скорее недостаток, чем достоинство.

Это хорошо, что ты (если можно на ты) написал сложный мультипарадигмальный продукт, но есть ощущение что учетны не все и не главные сценарии работы.

ИМХО, конечно

Мне кажется более полезным создать интерфейс для трекинга экспериментов, раз уж на то пошло. Но и то хз.
6. user1404129 57 21.05.20 18:58 Сейчас в теме
(5) Может и не ограничивается, все зависит от задач. В принципе, не проблема написать универсальную обработку, автоматизирующую процессы обучения или прогноза. Просто на это понадобится некоторое время. Композиция слоев основана не на модели sequential, а на модели functional api. Возможно она не настолько гибкая как Вам хотелось-бы, но позволяет решать широкий круг задач. Почему композиция слоев является недостатком? По-моему вполне себе наглядный инструмент для новичков. Конечно, лучше было бы сделать что-то типа графической схемы, но, к сожалению, подобных инструментов в 1С я не нашел, а сама графическая схема не предоставляет такой возможности.
Сценарии работы можно посмотреть в видеоуроках. Может ли конфигурация заменить язык Питон? Ну если бы обработки могли бы заменить программистов, то последних и не было бы. Сценарии всегда можно прописать, тем более что это даже не версия 1.0, а пока только 0.95.
7. user1404129 57 21.05.20 19:59 Сейчас в теме
(5) По поводу сценариев соглашусь. Нужно было дать возможность выбирать способ предварительной обработки выходных данных, а не жестко привязывать. Наверное, это лучше будет переделать.
8. dsdred 1412 26.05.20 08:59 Сейчас в теме
Спасибо автору.
Интересная вещица.
9. user1404129 57 26.05.20 12:46 Сейчас в теме
(8) Пожалуйста! Жду отзывов и предложений.
Оставьте свое сообщение

См. также

1C# – 1С моей мечты

Интеграция v8 Бесплатно (free)

Встроенных в платформу 1С возможностей не всегда хватает для построения сложных интеграционных схем между различными 1С и не-1С-решениями на базе MS SQL Server. Как сделать интеграцию между SQL-базами более гибкой с помощью платформы 1С# на конференции Infostart Event 2019 Inception рассказал Дмитрий Жичкин.

01.06.2020    7003    0    zhichkin    31    

Как организовать консолидацию данных из трех десятков предприятий, не привлекая программистов на местах?

Интеграция v8 1cv8.cf Бесплатно (free)

Какую архитектуру и технологии выбрать для организации обмена между «зоопарком» разных конфигураций и системой, принципиально отличающейся от 1С, как наладить такой обмен без изменения конфигурации и организовать мониторинг из единого центра, расскажет докладчик конференции INFOSTART EVENT 2018 EDUCATION Александр Бобрышов. 

15.07.2019    3847    0    ShurikDM    4    

RabbitMQ + Конвертация Данных 3.0

Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

21.03.2019    22923    0    barelpro    82    

Переход на "Зарплату и управление персоналом 3.1"

Интеграция Управление персоналом (HRM) Пользователю системы Бухгалтерский учет Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Бесплатно (free)

Сменила я тут работу и уже после того, как я приступила к исполнению обязанностей, мой новый начальник мне призналась, что выбор пал на меня только из-за того, что я знаю программу. Справедливости ради, эта уверенность была основана только на том, что я прошла тестирование, включающее только основные операции кадрового делопроизводства. Так или иначе, а работодатель попал в точку, нанимая меня в надежде, что я решу проблему: нужно перейти «с 8.2 на 8.3». Ничего сложного, скажет большинство, я тоже так говорю, но ситуация осложнялась некоторым количеством предшественников, которые уже «нафеячили» в программах до меня. Взять и сделать все заново мне не разрешили, так что пришлось исходить из того, что есть, и именно это дало пищу для размышлений и, в конце концов, привело к написанию этих рекомендаций. Если перед Вами стоит задача перехода с ЗУП 2.5 на ЗУП 3.1, я попробую облегчить Вам жизнь этой статьей.

01.02.2019    11738    0    VKuser24804875    33    

Выбор программы 1С

Пользователю системы Интеграция Управление проектом v8 1cv8.cf Россия Бесплатно (free)

Данная статья является своеобразной точкой отсчета для тек, кто размышляет на тему автоматизации бизнес-процессов своей компании. Для тех, кто только начинает свое знакомство с линейкой программных продуктов фирмы 1С. Мы рассмотрим упрощенный процесс выбора программного продукта применительно к тому или иному направлению учета.

16.01.2019    8004    0    itworks    22    

Проектирование архитектуры и модификация программных продуктов как технология в сложных проектах системной интеграции и автоматизации на базе 1С: СППР

Управление проектом Интеграция СППР v8 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

Как сделать проектирование функциональной архитектуры ПО технологией. Цель - устранить ряд типовых проблем на сложных проектах. Как использовать для решения этих задач 1С система проектирования прикладных решений (СППР). Статья полезна для директоров франчайзи, системных интеграторов, руководителей проектов, архитекторов и консультантов.

03.10.2018    14876    0    roman72    19    

Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя"

WEB Интеграция v8 Энергетика и ЖКХ Бесплатно (free)

Гончаров Максим делится опытом создания «Личного кабинета потребителя» на сайте водоканала. Он описывает архитектуру системы и объясняет, какую роль в ней играют технологии: «Битрикс», OData, веб-сервисы, «1С:БСП». Также в статье раскрываются возможности использования подсистемы «Анкетирование» в «1С:БСП» как конструктора документов.

25.06.2018    16021    0    maxx    32    

Может ли 1С выйти на рынок B2C

Интеграция v8 Бесплатно (free)

Размышляя о том, может ли 1С втиснуться на рынок сервисов типа Slack, Wrike и им подобных, текст незаметно углубился в размышления о том, где граница применимости платформы 1С. Что будет, если 1С пойдет на рынок таких продуктов и возможно ли это вообще. Рассказал свое представление о том, где у 1С есть преимущества и где слабые стороны. Получился такой себе вырожденный SWAT-анализ. Но без таблиц. Только буквы, только хардкор.

15.08.2017    12994    0    WanGoff    76    

УПП + Perco + SDK

Интеграция v8 УПП1 Россия Бесплатно (free)

1С: УПП интеграция с Perco через SDK

24.10.2014    31747    0    Alex33614    11    

Автоматизация компании ЖКХ: задачи и решения

Интеграция v8 Энергетика и ЖКХ Россия Бесплатно (free)

Отрасль жилищно-коммунального хозяйства мы до сих пор видели в двух ипостасях. Это оставшиеся с советских времен, жутко неэффективные МУПы и ДЭЗы и новоиспеченные фирмы, дорвавшиеся к «большим» деньгам ЖКХ, при этом тут же попавшие в шумные скандалы о растратах и неэффективном управлении. Но потихоньку ситуация меняется. Приходят на руководящие должности разумные люди, создаются управляющие компании целью которых становиться не «урвать и сбежать», а нормально работать и зарабатывать.

29.05.2011    10978    0    verybig    14