Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 18, 2018 14:01:14

Artur87
Зарегистрирован: 2018-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести сообщения из консоли в модальное окно?

Прога состоит из двух файлов: main.py и net.py
В первом файле реализован интерфейс. Можно вводить значения параметров через spinbox, textedit, combobox и т.д.
Во втором файле реализована нейронная сеть на основе библиотеки keras, которая принимает параметры из файла main.py.

В интерфейс я добавил кнопку “Запуск”, которая запускает обучение модели сети, то есть те функции, которые есть в net.py.

Обучение идет долго, минут 30-50, в течение которых в консоли нейросеть выдает сообщения о каждом выполненном шаге с указанием ошибки обучения, вот так:
epoch 1/100, metrics =
epoch 2/100, metrics =

epoch 100/100, metrics =

Если в это время даже просто щелкнуть по окну программы с интерфейсом, окно зависает (не отвечает). По сути, имеем большой косяк.

Чтобы не выводить обучение (исполнение файла net.py) в отдельный поток, я хочу при нажатии на кнопку “Запуск” выводить модальное окно. Если я правильно думаю, это должно убрать подобный конфликт, так как главное окно будет недоступно, пока модальное не закроешь. Или нет?

В модальном окне хочу выводить те самые сообщения из консоли.
Если надо будет прервать обучение, то можно будет нажать на кнопку “стоп” в модальном окне.
Если обучение завершено, надо как-то вывести диалоговое окно с соответствующим сообщением.

Подскажите, пожалуйста, как можно реализовать такое модальное окно. Пишу на pyqt5
Или другие идеи. Заранее спасибо!

Отредактировано Artur87 (Янв. 18, 2018 14:11:10)

Офлайн

#2 Янв. 18, 2018 14:28:26

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2832
Репутация: +  186  -
Профиль   Отправить e-mail  

Как вывести сообщения из консоли в модальное окно?

> Или нет?

Нет. Процесс обучения должен работать в отдельном потоке, в основное окно информация должна передаваться при помощи сигналов.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Янв. 18, 2018 14:33:22

Artur87
Зарегистрирован: 2018-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести сообщения из консоли в модальное окно?

1) надо все содержимое исполняемых функций файла net.py заключить в поток?
2) а как выводить сообщения, которые формирует нейросеть? При помощи каких команд, функций?

Офлайн

#4 Янв. 18, 2018 15:35:44

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2832
Репутация: +  186  -
Профиль   Отправить e-mail  

Как вывести сообщения из консоли в модальное окно?

1) Все тяжёлые функции должны быть вынесены в отдельный поток, иначе будет блокирован GUI
2) Вот пример передачи сообщений между потоками. У тебя будут сигналы нового стиля, но принцип тот-же.
http://python.su/forum/topic/24662/?page=2#post-130903



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Янв. 18, 2018 18:28:53

Artur87
Зарегистрирован: 2018-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вывести сообщения из консоли в модальное окно?

Спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version