class_docstr: Send a notification to a channel at the beginning/ending of the training/testing and at a constant frequency
  (`alert_frequency`) during the training.
  
  Args:
      notificator (~poutyne.Notificator): The notification channel to send the message.
          The expected interface need to implement a `send_notification` method to send the message. You can see the
          `notif <https://notificationdoc.ca/index.html>`_ package which implements some Notificator respecting the
          interface.
      alert_frequency (int): The frequency (in epoch), during training, to send an update. By default, 1.
      experiment_name (Union[str, None]): The name of the experiment to add to the message. By default, None.
  
  Example:
  
      .. code-block:: python
  
          from notif.notificator import SlackNotificator
          from poutyne.framework.callbacks.notification import NotificationCallback
  
          webhook_url = "a_link"
          slack_notif = SlackNotificator(webhook_url=webhook_url)
  
          notif_callback = NotificationCallback(notificator=slack_notif)
  
          model = Model(...)
          model.fit_generator(..., callbacks=[notif_callback])
code: def __init__(
      self,
      notificator: Notificator,
      alert_frequency: int = 1,
      experiment_name: Union[None, str] = None,
  ) -> None:
      super().__init__()
      self.notificator = notificator
      self.alert_frequency = alert_frequency
      self.experiment_name_msg = (
          f" for {experiment_name}"
          if experiment_name is not None
          else ""
      )
  
file_path: poutyne/poutyne/framework/callbacks/notification.py
imports: from abc import ABC, abstractmethod
  from typing import Dict, Union
  from poutyne.framework.callbacks.callbacks import Callback
label_desc: Use image node_id 1 to create a new NotificationCallback object from inherited base classes: Callback with example: obj = NotificationCallback(notificator, alert_frequency, experiment_name)