Получайте уведомления, когда ваша длительно работающая ячейка завершает выполнение.
Если вы являетесь пользователем Jupyter Notebook, должны были быть сценарии, когда для конкретной ячейки требовалось много времени для завершения выполнения. Это особенно часто встречается во время обучения модели в машинном обучении, оптимизации гиперпараметров или даже при выполнении длительных вычислений и т. Д. Если да, то уведомление браузера, которое проинформирует вас о завершении процесса, может оказаться очень кстати. Таким образом, вы сможете перейти на другие вкладки и вернуться к эксперименту с машинным обучением только после того, как получите уведомление о завершении. Что ж, оказывается, что есть расширение Jupyter, которое делает именно это и очень удачно названо Notify. В этой статье мы увидим, как включить уведомления как в Jupyter Notebook, так и в Jupyter Lab с помощью notify.
Уведомление: волшебство Jupyter для уведомлений браузера о завершении ячейки
Уведомление - это расширение Jupyter Notebook, которое уведомляет пользователя о завершении выполнения длительной ячейки. Это делается через уведомление браузера. На данный момент уведомление поддерживается в Chrome (версия: 58.0.3029) и Firefox (версия: 53.0.3).
Давайте теперь посмотрим, как мы можем установить пакет и использовать его.
Установка
Установка может быть произведена через pip
pip install jupyternotify
или через источник как:
git clone [email protected]:ShopRunner/jupyter-notify.git cd jupyter-notify/ virtualenv venv source venv/bin/activate pip install -r requirements.txt jupyter notebook
Включение уведомлений в Jupyter Notebook
Во-первых, мы рассмотрим, как мы можем включить уведомления в Jupyter Notebooks. Введите следующий текст в первую ячейку записной книжки:
%load_ext jupyternotify
Когда вы запускаете эту ячейку в первый раз, ваш браузер попросит вас разрешить уведомления в записной книжке. Вам следует нажать «Да». Теперь все готово. Здесь я покажу вам небольшой фрагмент кода, который с помощью функции sleep() function.
This приостанавливает (ожидает) выполнение текущего потока на заданное количество секунд.
%%notify import time time.sleep(10) print('Finished!')
Выполнив указанную выше ячейку, вы получите следующее уведомление в своем браузере:
Когда вы нажимаете на текст уведомления, вы попадаете прямо в окно браузера и на вкладку, содержащую ваш блокнот.
Включение уведомлений в Jupyter Lab
Хотя в настоящее время нет официальной поддержки Jupyter Lab, я нашел обходной путь. Судя по всему, пользователь отправил запрос на перенос с решением, но он еще не был объединен. Однако решение работает без сбоев.
Вставьте следующее в ячейку Jupyter Lab, а затем код, который вы хотите запустить:
!pip uninstall jupyternotify -y !pip install git+https://github.com/cphyc/jupyter-notify.git %reload_ext jupyternotify
Теперь мы воспользуемся тем же кодом, что и выше, чтобы проверить, включены ли уведомления.
%%notify import time time.sleep(5)
Настройка сообщения уведомления
Если вы хотите получить более интересное сообщение с уведомлением, код можно легко настроить для этого.
%%notify -m "Congrats.The process has finished" import time time.sleep(3)
Также доступно множество других опций, например, запуск уведомления в середине ячейки или автоматический запуск уведомления через определенное время. Я настоятельно рекомендую вам заглянуть в репозиторий GitHub пакета для получения подробной информации.
Заключение
Такая простая функция, как уведомление, может быть полезной, особенно если вы регулярно работаете с процессами, выполнение которых требует много времени. Очень удобно иметь возможность переходить на другую вкладку или даже на рабочий стол и при этом получать уведомления о завершении выполняемого процесса. Иногда небольшие надстройки, такие как jupyternotify, действительно могут помочь повысить продуктивность пользователя.