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

29.06.20

Разработка - Инструментарий разработчика

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

Скачать исходный код

Наименование Файл Версия Размер
Нейроконструктор: для 8.3.14 (и выше)
.dt 4,55Mb
262
.dt 1.0.0 4,55Mb 262 Скачать бесплатно
Нейроконструктор: для 8.3.13
.dt 4,40Mb
62
.dt 1.0.0 4,40Mb 62 Скачать бесплатно

Знакомство с Нейроконструктором.
Нейроконструктор – это конфигурация для учебы и экспериментов. С его помощью Вы сможете в легкой форме постичь азы работы с нейронными сетями. И это будет не теория, а, можно сказать, лабораторные работы. Навыков программирования не требуется.  Нейроконструктор представляет собой расширение конфигурации для платформы 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. Обучение - оценка и прогноз

 

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

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

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124313    679    389    

731

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    7674    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4187    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2880 руб.

14.01.2013    178476    1083    0    

861

Потоковая предметная фотосъемка c удалением фона (Canon & Nikon)

Нейросети 8.3.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Обработка подключения фотокамер Canon и Nikon к Управление торговлей 11.4 для потоковой загрузки фотографий в карточки товаров с автоматическим удалением фона

22800 руб.

24.06.2021    9262    2    3    

11

Заполнение описания номенклатуры с помощью ChatGPT

Мастера заполнения Нейросети Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ ChatGPT. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5000 руб.

13.03.2023    16109    42    49    

74

Заполнение описания номенклатуры с помощью GigaChat

Нейросети Мастера заполнения Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    1491    6    0    

14

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99560    239    97    

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


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

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

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

Мне кажется более полезным создать интерфейс для трекинга экспериментов, раз уж на то пошло. Но и то хз.
6. user1404129 133 21.05.20 18:58 Сейчас в теме
(5) Может и не ограничивается, все зависит от задач. В принципе, не проблема написать универсальную обработку, автоматизирующую процессы обучения или прогноза. Просто на это понадобится некоторое время. Композиция слоев основана не на модели sequential, а на модели functional api. Возможно она не настолько гибкая как Вам хотелось-бы, но позволяет решать широкий круг задач. Почему композиция слоев является недостатком? По-моему вполне себе наглядный инструмент для новичков. Конечно, лучше было бы сделать что-то типа графической схемы, но, к сожалению, подобных инструментов в 1С я не нашел, а сама графическая схема не предоставляет такой возможности.
Сценарии работы можно посмотреть в видеоуроках. Может ли конфигурация заменить язык Питон? Ну если бы обработки могли бы заменить программистов, то последних и не было бы. Сценарии всегда можно прописать, тем более что это даже не версия 1.0, а пока только 0.95.
7. user1404129 133 21.05.20 19:59 Сейчас в теме
(5) По поводу сценариев соглашусь. Нужно было дать возможность выбирать способ предварительной обработки выходных данных, а не жестко привязывать. Наверное, это лучше будет переделать.
8. dsdred 3316 26.05.20 08:59 Сейчас в теме
Спасибо автору.
Интересная вещица.
9. user1404129 133 26.05.20 12:46 Сейчас в теме
(8) Пожалуйста! Жду отзывов и предложений.
10. dance000 09.06.20 16:12 Сейчас в теме
А можете подсказать примерную предметную область для использования этого продукта?
Что в конечном итоге я смогу получить скармливая данные нейросети? Примерные продажи в разрезе товаров, или остатки на складах?
14. user1404129 133 09.06.20 16:48 Сейчас в теме
(10) Предметную область ещё надо делать. Примерные продажи можно сделать с использованием рекуррентых сетей. Только дружелюбный интерфейс для этого нужно сделать. А это большие временные затраты на разработку. Я ещё даже первую версию не выпустил и видео уроки не закончил.
2vadmaster; +1 Ответить
28. 2vadmaster 40 24.01.24 09:34 Сейчас в теме
(14) Работы проделано не мало, но цель то какая? Прогнозировать продажи и остатки на складах? :-) В настоящей ситуации не вариант строить для крупного опта модели под такие задачи - когда исходные данные резко изменяются (уходит Европа - пришел Китай например и неизвестно как завтра будет уйдет Китай, придет Корея - новые поставщики, новые бренды без статистики и т.д.). Стохастическое изменение данных - всегда не просто.
11. acanta 09.06.20 16:18 Сейчас в теме
Имхо, это может позволить изменить круг общения. Обычно, программист 1с понимает это как "предметную область", но предметная область это сфера знаний, а круг общения это список реальных людей, способных ответить на ваши вопросы в нужный для вас момент времени (включая социологические опросы).
12. dance000 09.06.20 16:19 Сейчас в теме
(11) Тоесть поделка ради поделки?
13. acanta 09.06.20 16:22 Сейчас в теме
(12) диплом в вузе можно сделать и использовать в дальнейшем, а можно купить на сайте готовых курсовых и дипломных работ.
Есть еще несколько вариантов получения и использования дипломных/курсовых работ, которые отечественной науке пока не известны.
Инфостарт это один из таких новых способов.
15. user1404129 133 09.06.20 17:18 Сейчас в теме
(11) В данном виде конфигурация хорошо подходит для изучения технологии. В будущем возможно появление отдельных обработок для специализированных задач.
16. hakerxp 2999 17.06.20 15:12 Сейчас в теме
Добрый день, автор! Сам недавно начал уделять время Keras + Python + Tensorflow.
В принципе, в 1С нет смысла все это делать, если знаешь Python. А без него в этом деле - никуда. Тем более системы машинного обучения и нейронных сетей требует от людей больше, чем просто уметь программировать в 1С. Следовательно, все равно нужно знание другого языка программирования и много-много времени на тестирование. А в 1С передать данные можно через COM с помощью специальных пакетов.

Да, времени потратил много, но, как по мне лучше написать программу на Python, подключиться к 1С или к СУБД и вытянуть нужные данные, обработать и назад вернуть. Будет и быстрее и правильнее - 1С пока не может тягаться по скорости и удобству с Numpy, Pandas и Matplotlib. .
17. user1404129 133 17.06.20 19:16 Сейчас в теме
(16) Добрый день! Удачи Вам в изучении технологии. Получается только у тех, кто что-то делает. Ждем воплощения Ваших творческих способностей в сфере ИИ. А пока можете начать с видеоуроков, они сделаны по книге "Глубокое обучение на Питон".
18. user1404129 133 18.06.20 00:02 Сейчас в теме
(16) Кстати, примером обмена с Питоном через COM не поделитесь?
19. пользователь 25.09.20 11:50
Сообщение было скрыто модератором.
...
20. van_za 246 15.01.21 11:13 Сейчас в теме
Нужно видимо начинать учиться, автору респект!!!
21. alexlkt 18.08.21 15:28 Сейчас в теме
Написано бесплатно, но на почту файл не приходит!!!
22. alexlkt 18.08.21 15:32 Сейчас в теме
Извиняюсь!!! Сайт тормозит все пришло!
23. alexlkt 18.08.21 16:58 Сейчас в теме
Скачал! Создал пустую базу, загрузил файл базы! Файлы пустые)))) Это прикол)))
graphbuh; +1 Ответить
24. KazanKokos 10 04.10.21 08:57 Сейчас в теме
(23) написано что расширение. посмотрите расширения
25. milkers 2871 22.10.21 13:29 Сейчас в теме
26. Leon75 06.01.22 20:48 Сейчас в теме
27. bprogs 198 11.01.23 10:44 Сейчас в теме
в 1с есть вещи которые нет в других языках, а в других языках есть то чего нет в 1с, так что тут даже не поспоришь, респектую , обязательно нужно вникнуть))) обвязка языков вроде неплохая для конструктора , так то можно было одним с++ обойтись, ну когда все уже реализовано и шаблонизировано ,хочется покрутить повертеть )))))
29. ya.Avoronov 115 30.01.24 14:26 Сейчас в теме
Начал прохождение курса по видео урокам.
Подачей материала доволен, спасибо!

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

Вами аланируется обновление поставки с учетом новых реалий или может новые фишки внутри конфигурации появятся?
30. dk77 24 12.02.24 20:02 Сейчас в теме
Ошибка при импорте модели в защищенном модуле
Неверный класс объекта: "Functional"
Оставьте свое сообщение