
Проверка на плагиат / На рерайт / Проверка на рерайт. Отчет
.pdf
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
дублирующего проекта (рис. 4.13).
Рисунок 4.13 — Диалоговое окно сохранения файла дублирующего проекта
Если в диалоговом окне было введено корректное имя файла (либо выбран файл на перезапись) и нажата кнопка «Сохранить», то создается новый проект (рис. 4.14).
Рисунок 4.14 — Проект «temp/project7» создан как дубликат «temp/project6»
В случае ошибки выводится сообщение об ошибке «Не удалось дублировать проект: [описание ошибки]» (рис. 4.15).
Рисунок 4.15 — Ошибка дублирования проекта «Permission denied» (отказано в доступе)
4.1.5 Функция списка проектов «Закрыть проект» Если хотя бы один открытый проект есть, то отображается окно подтверждения «Вы уверены,
что хотите закрыть проект?» с кнопками «Да» и «Нет» (рис. 4.16).
Рисунок 4.16 — Окно подтверждения закрытия проекта
Если «Нет», то отмена действия.
Если «Да» и статус проекта «Сохранен», то проект закрывается.
Если «Да» и статус проекта «Не сохранен», то отображение окна подтверждения «Сохранить проект перед закрытием?» с кнопками «Да» и «Нет» (рис. 4.17). Если «Да», то проект сохраняется и закрывается. Если «Нет», то проект закрывается без сохранения.
Рисунок 4.17 — Подтверждение сохранения проекта
В случае ошибки выводится сообщение об ошибке «Не удалось закрыть проект: [описание ошибки]» (рис. 4.18). Если закрытие не удалось, проект не удаляется в приложении и его статус не меняется.
Рисунок 4.18 — Ошибка закрытия проекта с сохранением «Permission denied» (отказано в доступе)
4.1.6 Функция списка проектов «Выход из программы» Отображение окна подтверждения «Вы уверены, что хотите выйти?» с кнопками «Да» и «Нет»
(рис. 4.19).
Рисунок 4.19 — Окно подтверждения выхода из программы
Если «Нет», то отмена действия.
Если «Да», то для каждого открытого проекта проверяется его статус. Если статус какого-либо из проектов «Не сохранен», то отображается окно подтверждения «Сохранить все проекты перед выходом?» с кнопками «Да», «Нет» и «Отмена» (рис. 4.20).
Рисунок 4.20 — Окно подтверждения сохранения проектов перед выходом
Если нет открытых проектов или статус всех проектов «Сохранен», то все проекты закрываются, настройки программы записываются в файл настроек, а затем происходит выход из программы.
В случае ошибки отображается окно подтверждения «Проигнорировать ошибку? [описание ошибки]» с кнопками «Да» и «Нет» (рис. 4.21). Если «Да», то ошибка игнорируется. Если «Нет»,
21

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
то выход из программы не производится.
Рисунок 4.21 — Окно подтверждения игнорирования ошибки
4.2 Обзор функций проекта 4.2.1 Функция проекта «Добавить блок кода»
Если хотя бы один открытый проект есть, то добавляется блок кода в любую позицию (рис.
4.22).
Рисунок 4.22 — Блок кода добавлен в проект
4.2.2 Функция проекта «Добавить текстовый блок» Если хотя бы один открытый проект есть, то добавляется текстовый блок в любую позицию (рис.
4.23).
Рисунок 4.23 — Текстовый блок добавлен в проект 4.2.3 Функция проекта «Запустить выбранные блоки»
Если хотя бы один открытый проект есть, но блоки кода не выбраны, то во всплывающем сообщении об ошибке выводится: «Ни один блок кода не выбран для выполнения» с кнопкой
«Ок» (рис. 4.24).
Рисунок 4.24 — Сообщение об ошибке «Ни один блок кода не выбран для выполнения»
Если хотя бы один открытый проект есть и хотя бы один блок кода выбран, то выбранные блоки кода отправляются на выполнение (рис. 4.25).
Рисунок 4.25 — Выполнение выбранного блока кода
Поддерживается установка библиотек (рис. 4.26).
4.2.4 Функция проекта «Остановить выполнение блоков» Если хотя бы один открытый проект есть, но в текущем проекте ядро еще не было запущено, то
во всплывающем сообщении об ошибке выводится: «Ядро не запущено» с кнопкой «Ок» (рис.
4.26).
Рисунок 4.26 — «Ядро не запущено»
Если хотя бы один открытый проект есть и в текущем проекте ядро запущено, то отображается окно подтверждения «Подтвердить остановку всех блоков кода выбранного проекта?» с кнопками «Да» и «Нет» (рис. 4.27).
Рисунок 4.27 — Подтверждение остановки всех блоков кода
Если «Да», то выполнение блоков кода останавливается (рис. 4.28).
Рисунок 4.28 — Выполнение блоков кода остановлено
4.2.5 Функция проекта «Перезапустить ядро» Если хотя бы один открытый проект есть и в текущем проекте ядро запущено, то отображается
окно подтверждения «Подтвердить перезапуск ядра выбранного проекта?» с кнопками «Да» и «Нет» (рис. 4.29).
Рисунок 4.29 — Окно подтверждения перезапуска ядра
22

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
Если «Да», то ядро перезапускается (рис. 4.30).
Рисунок 4.30 — Перезапуск ядра
4.2.6 Функция проекта «Очистить вывод выбранных блоков» Если хотя бы один открытый проект есть и хотя бы один блок кода выбран, то отображается
окно подтверждения «Подтвердить очистку вывода выбранных блоков кода?» с кнопками
«Да» и «Нет» (рис. 4.31).
Рисунок 4.31 — Окно подтверждения очистки вывода выбранных блоков Если «Да», то вывод всех выбранных блоков в списке блоков очищается, вывод скрывается
(рис. 4.32).
Рисунок 4.32 — Вывод блоков очищен и скрыт
4.2.7 Функция проекта «Удалить выбранные блоки» Если хотя бы один открытый проект есть и хотя бы один блок выбран, то отображается окно
подтверждения «Подтвердить остановку и удаление выбранных блоков?» с кнопками «Да» и «Нет» (рис. 4.33).
Рисунок 4.33 — Окно подтверждения остановки и удаления выбранных блоков
Если «Да», то выполнение выбранных блоков кода (и последующих блоков в очереди после них) останавливается, затем блоки удаляются (рис. 4.34).
Рисунок 4.34 — Выбранные блоки удалены
4.3 Обзор функций блока кода 4.3.1 Функция блока кода «Запустить»
Если ядро не было запущено, то оно запускается. В очередь добавляется блок на выполнение
(рис. 4.35).
Рисунок 4.35 — Блок кода выполнен
4.3.2 Функция блока кода «Остановить» Отображается окно подтверждения «Подтвердить остановку блока кода?» с кнопками «Да» и «Нет» (рис. 4.36).
Рисунок 4.36 — Окно подтверждения остановки выполнения блока кода
Если «Да», то выполнение блока кода останавливается (рис. 4.37).
Рисунок 4.37 — Выполнение блока кода остановлено
4.3.3 Функция блока кода «Удалить» Отображается окно подтверждения «Подтвердить остановку и удаление блока кода?» с кнопками «Да» и «Нет» (рис. 4.38).
Рисунок 4.38 — Окно подтверждения остановки и удаления блока кода
Если «Да», то выполнение блока кода (и последующих блоков в очереди после него) останавливается, затем блок удаляется (рис. 4.39).
23

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
Рисунок 4.39 — Блок удален
4.3.4 Функция блока кода «Скрыть/показать вывод» Если вывод был скрытым, то он становится видимым (рис. 4.40).
Рисунок 4.40 — Отображение вывода блока кода
Если вывод был видимым, то он становится скрытым (рис. 4.41).
Рисунок 4.41 — Сокрытие вывода блока кода
4.3.5 Функция блока кода «Горячие клавиши» Работа основных горячих клавиш приведена на рисунке 4.42. 1
Рисунок 4.42 — Работа основных горячих клавиш
Помимо основных также работает «Backspace», который удаляет символ или отступ, и «Enter», добавляющий новую строку с отступом, ориентируясь по предыдущей строке.
4.3.6 Функция блока кода «Подсветка синтаксиса» Подсветка синтаксиса в блоке кода представлена на рисунке 4.43.
Рисунок 4.43 — Подсветка синтаксиса в блоке кода
4.3.7 Функция блока кода «Запрос данных со стороны среды исполнения» В случае запроса данных со стороны среды исполнения в приложении открывается окно с
выбором способа ввода («без экранирования», «обычный, с экранированием», «байтовая строка, без экранирования», «байтовая строка с экранированием») и двумя кнопками «Ок» и «Отмена» (рис. 4.44).
Рисунок 4.44 — Выбор режима ввода «Обычный, с экранированием»
После нажатия на кнопку «Ок» применяется выбранный способ ввода и открывается окно с полем ввода и двумя кнопками «Ок» и «Отмена» (рис. 4.45). Если запрашивается однострочный ввод, то однострочное поле ввода. Если запрашивается многострочный ввод, то многострочное поле ввода.
Рисунок 4.45 — Запрос многострочного ввода, обычный текст с экранированием
Результат нажатия на кнопку «Ок» приведен на рисунке 4.46.
Рисунок 4.46 — Многострочный ввод, обычный текст с экранированием
Для многострочного ввода с выбором «Без экранирования» (рис. 4.47-4.48) результат представлен на рисунке 4.49.
Рисунок 4.47 — Выбор режима ввода «Без экранирования»
Рисунок 4.48 — Запрос многострочного ввода, обычный текст без экранирования
Рисунок 4.49 — Многострочный ввод, обычный текст с экранированием в список
Для многострочного ввода с выбором «Байтовая строка, без экранирования» (рис. 4.50-4.51)
24

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
результат представлен на рисунке 4.52.
Рисунок 4.50 — Выбор режима ввода «Байтовая строка, без экранирования»
Рисунок 4.51 — Запрос однострочного ввода, байтовая строка без экранирования
Рисунок 4.52 — Однострочный ввод, байтовая строка без экранирования
Для многострочного ввода с выбором «Байтовая строка, с экранированием» (рис. 4.53-4.54) результат представлен на рисунке 4.55.
Рисунок 4.53 — Выбор режима ввода «Байтовая строка, с экранированием»
Рисунок 4.54 — Запрос однострочного ввода, байтовая строка с экранированием
Рисунок 4.55 — Однострочный ввод, байтовая строка с экранированием
Если преобразование невозможно, то выводится сообщение об ошибке «Ошибка ввода: [описание ошибки]» с кнопкой «Ок» (рис. 4.56). После нажатия на «Ок» происходит переход обратно к окну выбора способа ввода.
Рисунок 4.56 — Окно с информацией об ошибке ввода
4.4 Обзор функций блока текста
4.4.1 Функция блока текста «Редактировать как HTML»
Блок текста содержит кнопку, посредством которой можно редактировать текст в формате
HTML и в формате Markdown (рис. 4.57).
Рисунок 4.57 — Кнопка для редактирования текста с контекстным меню
При выборе «Edit as HTML» открывается окно редактирования текста в формате HTML (рис.
4.58).
Рисунок 4.58 — Редактирования блока текста в формате HTML
4.4.2 Функция блока текста «Редактировать как Markdown»
При выборе «Edit as Markdown» открывается окно редактирования текста в формате Markdown (рис. 4.59).
Рисунок 4.59 — Редактирования блока текста в формате Markdown
4.4.3 Функция блока текста «Обновить вид» Блок текста содержит кнопку, посредством которой можно обновить его вид (рис. 4.60).
Рисунок 4.60 — Обновление вида блока текста
4.4.4 Функция блока текста «Удалить» Блок текста содержит кнопку, посредством которой можно его удалить.
После нажатия на кнопку отображается окно подтверждения удаления (рис. 4.61).
Рисунок 4.61 — Окно подтверждения удаления текстового блока
4.4.5 Функция блока текста «Вставить текст из буфера обмена как текст без форматирования»
25

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
Пункты контекстного меню редактора текстового блока содержат функции «Вставить текст из буфера обмена как текст без форматирования» («Paste Plain Text»), «Вставить текст из буфера обмена как HTML» («Paste HTML») и «Вставить текст из буфера обмена как Markdown» («Paste Markdown») (рис. 4.62).
Рисунок 4.62 — Функции вставки в контекстном меню
После копирования содержимого верхнего блока текста и вставки в нижний как текста без форматирования результат будет таким, как представлен на рисунке 4.63.
Рисунок 4.63 — Вставка содержимого буфера обмена как текста без форматирования
4.4.6 Функция блока текста «Вставить текст из буфера обмена как HTML»
После копирования первой строки содержимого верхнего блока текста (рис. 4.62) и вставки в нижний как HTML-кода результат будет таким, как представлен на рисунке 4.64.
Рисунок 4.64 — Вставка содержимого буфера обмена как HTML-кода
4.4.7 Функция блока текста «Вставить текст из буфера обмена как Markdown»
После копирования второй строки содержимого верхнего блока текста (рис. 4.62) и вставки в нижний как Markdown-кода результат будет таким, как представлен на рисунке 4.65.
Рисунок 4.65 — Вставка содержимого буфера обмена как Markdown-кода
4.5 Обзор функций настроек приложения Окно настроек приложения представлено на рисунке 4.66.
Рисунок 4.66 — Окно настроек приложения
4.5.1 Функция настроек приложения «Шрифт заголовков» После изменения шрифта заголовка (рис. 4.67) результат представлен на рисунке 4.68.
Рисунок 4.67 — Изменение шрифта заголовков в настройках
Рисунок 4.68 — Измененный шрифт заголовков
4.5.2 Функция настроек приложения «Шрифт блоков текста» После изменения шрифта блока текста (рис. 4.69) результат представлен на рисунке 4.70.
Рисунок 4.69 — Изменение шрифта блока текста в настройках
Рисунок 4.70 — Измененный шрифт блоков текста
4.5.3 Функция настроек приложения «Шрифт блоков кода» После изменения шрифта блока кода (рис. 4.71) результат представлен на рисунке 4.72.
Рисунок 4.71 — Изменение шрифта блока кода в настройках
Рисунок 4.72 — Измененный шрифт блоков кода
4.5.4 Функция настроек приложения «Перечитать файл настроек» После нажатия на кнопку «Перечитать файл настроек» результат представлен на рисунке 4.73.
26

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
Рисунок 4.73 — Результат повторного чтения файла настроек приложения
4.6 Обзор функций инструментов 4.6.1 Функция инструментов «Выбор цвета»
Системное диалоговое окно выбора цвета представлено на рисунке 4.74.
Рисунок 4.74 — Системное диалоговое окно выбора цвета
После нажатия на «Ок» параметры цвета копируются в буфер обмена (рис. 4.75).
Рисунок 4.75 — Окно с сообщением о копировании параметров цвета в буфер обмена
4.6.2 Функция инструментов «Выбор файлов» Системное диалоговое окно выбора файлов представлено на рисунке 4.76.
Рисунок 4.76 — Системное диалоговое окно выбора файлов
После нажатия на «Ок» список выбранных файлов копируется в буфер обмена (рис. 4.77).
Рисунок 4.77 — Окно с сообщением о копировании списка файлов в буфер обмена
4.7 Обзор функций списка разделов Контекстное меню списка разделов, контекстное меню раздела и контекстное меню шаблона представлены на рисунке 4.78.
Рисунок 4.78 — Контекстные меню
4.7.1 Функция списка разделов «Добавить раздел» Отображается окно ввода названия раздела «Введите название раздела (тип шаблона)» с
однострочным полем ввода и кнопками «Ок» и «Отмена» (рис. 4.79).
Рисунок 4.79 — Окно ввода названия раздела
Добавленный раздел представлен на рисунке 4.80.
Рисунок 4.80 — Добавленный раздел в списке разделов
4.7.2 Функция списка разделов «Обновить все разделы с шаблонами» Обновляется список всех разделов с шаблонами из директории «models/datasets»,
«models/architecture», «models/train_val_test». «models/visualization» или «models/export» в
зависимости от того, в каком разделе была выполнена операция (рис. 4.81). Пустые разделы (без шаблонов) удаляются.
Рисунок 4.81 — Список разделов после перезагрузки данных с диска
4.8 Обзор функций раздела 4.8.1 Функция раздела «Добавить шаблон по выбранным блокам в раздел»
Отображается окно ввода названия шаблона «Введите название шаблона» с многострочным полем ввода и кнопками «Ок» и «Отмена» (рис. 4.82).
Рисунок 4.82 — Окно ввода названия шаблона
После нажатия на кнопку «Ок» добавляется шаблон по выбранным блокам. После нажатия на
27

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
шаблон добавляются блоки шаблона (рис. 4.83).
Рисунок 4.83 — Новый раздел с шаблоном и рабочая область с блоками шаблона 4.8.2 Функция раздела «Удалить раздел со всеми шаблонами»
Отображается окно подтверждения «Вы уверены, что хотите удалить раздел [название] со всеми шаблонами» с кнопками «Да» и «Нет» (рис. 4.84).
Рисунок 4.84 — Окно подтверждения удаления раздела со всеми шаблонами
После подтверждения раздел удаляется (рис. 4.85).
Рисунок 4.85 — Список разделов удаления раздела со всеми шаблонами
4.9 Обзор функций шаблона 4.9.1 Функция шаблона «Обновить шаблон по выбранным блокам»
Отображается окно подтверждения «Вы уверены, что хотите обновить шаблон [раздел шаблона]/[название шаблона]» с кнопками «Да» и «Нет» (рис. 4.86).
Рисунок 4.86 — Окно подтверждения обновления шаблона по выбранным блокам
После нажатия на шаблон добавляются блоки шаблона (рис. 4.87).
Рисунок 4.87 — Рабочая область с блоками измененного шаблона 4.9.2 Функция шаблона «Изменить название шаблона»
Отображается окно ввода нового названия шаблона «Введите новое название шаблона» с многострочным полем ввода и кнопками «Ок» и «Отмена» (рис. 4.88).
Рисунок 4.88 — Окно ввода нового названия шаблона
После нажатия на кнопку «Ок» название шаблона изменяется (рис. 4.89).
Рисунок 4.89 — Шаблон с измененным названием
4.9.3 Функция шаблона «Удалить шаблон» Отображается окно подтверждения «Вы уверены, что хотите удалить шаблон [раздел
шаблона]/[название шаблона]» с кнопками «Да» и «Нет» (рис. 4.90).
Рисунок 4.90 — Окно подтверждения удаления шаблона
После нажатия на кнопку «Ок» шаблон удаляется. 4.10 Расширение интерпретатора
Разработанное приложение позволяет запускать команды командной оболочки и сохранять результат их выполнения (рис. 4.91).
Рисунок 4.91 — Расширение синтаксиса языка Python Пояснение расширенного синтаксиса:
•! — выполнение команды/запуск программы в обычном режиме;
•!@ — выполнение команды/запуск программы в обычном режиме без вывода на экран;
•!! — выполнение команды/запуск программы в расширенном режиме;
•!!@ — выполнение команды/запуск программы в расширенном режиме без вывода на экран. Расширенный режим позволяет указывать код на Python между «{!» и «!}» для использования результата его выполнения в качестве аргумента.
Во всех случаях имеется доступ к выводу (переменная «__stdout») и коду возврата (переменная
28

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
«__return_code»).
4.11 Классификация изображений
В качестве набора данных выбран «FlowerPhotos» — набор данных для классификации фотографий цветов.
Используемые библиотеки: tensorflow, keras, matplotlib, numpy, pillow, PySide6.
Сначала импортируются необходимые библиотеки и загружаются наборы данных из Интернета на диск (рис. 4.92) [16].
Рисунок 4.92 — Импорт необходимых библиотек и загрузка набора данных Отображается файл элемента набора данных (рис. 4.93).
Рисунок 4.93 — Просмотр файла элемента набора данных Загружается набор с диска с помощью утилиты Keras (рис. 4.94).
Рисунок 4.94 — Загрузка набора с диска с помощью утилиты Keras
Отображаются элементы набора данных (рис. 4.95).
Рисунок 4.95 — Просмотр элементов набора данных
Данные искажаются (англ. «augmentation») для более качественного обучения модели (рис.
4.96).
Рисунок 4.96 — Искажение данных для более качественного обучения Создается модель для обучения (рис. 4.97).
Рисунок 4.97 — Сверточная нейронная сеть для обучения Модель компилируется (рис. 4.98).
Рисунок 4.98 — Компиляция модели, 3.989.285 параметров Начинается обучение (рис. 4.99).
Рисунок 4.99 — Обучение модели началось Обучение заканчивается (рис. 4.100).
Рисунок 4.100 — Обучение модели закончилось История обучения визуализируется на графиках (рис. 4.101).
Рисунок 4.101 — Визуализация истории обучения Предсказываются новые данные моделью (рис. 4.102).
Рисунок 4.102 — Отнесение фотографии к категории «подсолнухи» с достоверностью 97.87%
Определяется содержимое дополнительного инструмента визуализации (рис. 4.103-4.105).
29

Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
Рисунок 4.103 — Определение содержимого дополнительного инструмента (1)
Рисунок 4.104 — Определение содержимого дополнительного инструмента (2)
Рисунок 4.105 — Определение содержимого дополнительного инструмента (3)
В созданном инструменте вводится URL изображения для классификации. Кнопка «Загрузить» загружает изображение на диск. Кнопка «Классифицировать» классифицирует изображение. Классификация розы (рис. 4.106).
Рисунок 4.106 — Классификация розы (достоверность 86%) Классификация тюльпана (рис. 4.107).
Рисунок 4.107 — Классификация тюльпана (достоверность 99%)
Классификация ромашки (рис. 4.108).
Рисунок 4.108 — Классификация ромашки (достоверность 99%) Классификация одуванчика (рис. 4.109).
Рисунок 4.109 — Классификация одуванчика
Классификация подсолнуха (рис. 4.110).
Рисунок 4.110 — Классификация подсолнуха 4.12 Классификация текста
В качестве набора данных выбран «imdb» — набор данных для классификации эмоциональной окраски (тональности) отзывов пользователей на кинематографические картины (Internet Movie
Database).
Используемые библиотеки: tensorflow, keras, matplotlib, numpy, PySide6.
Сначала импортируются необходимые библиотеки и загружаются наборы данных (рис. 4.111)
[17].
Рисунок 4.111 — Импорт необходимых библиотек и загрузка набора данных imdb
Настраивается входной конвейер (рис. 4.112).
Рисунок 4.112 — Настройка входного конвейера
Данные перемешиваются для подготовки и создания партии (text, label) пар (рис. 4.113).
Рисунок 4.113 — Перемешивание данных для подготовки и создание партии пар
Создается кодировщик текста (рис. 4.114).
Рисунок 4.114 — Создание кодировщика текста
Блок текста описывает используемую модель в графическом виде (рис. 4.115).
Рисунок 4.115 — Блок текста описывает модель в графическом виде
Модель создается и компилируется (рис. 4.116).
30