code: def on_epoch_end(self, epoch_number: int, logs: Dict):
      if epoch_number % self.alert_frequency == 0:
          self.notif.send_notification(f"Epoch {epoch_number} is done.")
  
file_path: poutyne/examples/medium_post/train_with_alert_callback.py
imports: import smtplib
  from typing import Dict
  import torch
  import torch.nn
  from notif.notificator import EmailNotificator
  from torch.utils.data import random_split
  from torchvision.datasets import MNIST
  from torchvision.transforms import ToTensor
  from poutyne import Experiment, Callback
label_desc: Use image node_id 3 for calling the TrainingAlertCallback obj's underlying member method code with example usage: obj.on_epoch_end(epoch_number, logs) without return types