class_docstr: Abstract Callback base class.
  
  Callbacks control the training of the GluonTS trainer. To write a custom
  Callback, you can subclass Callback and overwrite one or more of the hook
  methods. Hook methods with boolean return value stop the training if False
  is returned.
docstr: Hook that is called after each validation epoch. Similar to
  `on_train_epoch_end`, this method returns a boolean whether training
  should continue. Note that it is always called after
  `on_train_epoch_end` within a single epoch. If `on_train_epoch_end`
  returned `False`, this method will not be called.
  
  Parameters
  ----------
  epoch_no
      The current epoch (the first epoch has `epoch_no = 0`).
  epoch_loss
      The validation loss that was recorded in the last epoch.
  training_network
      The network that is being trained.
  trainer
      The trainer which is running the training.
  
  Returns
  -------
  bool
      A boolean whether the training should continue. Defaults to `True`.
docstr_tok: ["Hook","that","is","called","after","each","validation","epoch",".","Similar","to","`","on_train_epoch_end","`",",","this","method","returns","a","boolean","whether","training","should","continue",".","Note","that","it","is","always","called","after","`","on_train_epoch_end","`","within","a","single","epoch",".","If","`","on_train_epoch_end","`","returned","`","False","`",",","this","method","will","not","be","called",".","Parameters","--","--","--","--","--","epoch_no","The","current","epoch","(","the","first","epoch","has","`","epoch_no","=","0","`",")",".","epoch_loss","The","validation","loss","that","was","recorded","in","the","last","epoch",".","training_network","The","network","that","is","being","trained",".","trainer","The","trainer","which","is","running","the","training",".","Returns","--","--","--","-","bool","A","boolean","whether","the","training","should","continue",".","Defaults","to","`","True","`","."]
code: def on_validation_epoch_end(
      self,
      epoch_no: int,
      epoch_loss: float,
      training_network: nn.HybridBlock,
      trainer: gluon.Trainer,
  ) -> bool:
      """
      Hook that is called after each validation epoch. Similar to
      `on_train_epoch_end`, this method returns a boolean whether training
      should continue. Note that it is always called after
      `on_train_epoch_end` within a single epoch. If `on_train_epoch_end`
      returned `False`, this method will not be called.
  
      Parameters
      ----------
      epoch_no
          The current epoch (the first epoch has `epoch_no = 0`).
      epoch_loss
          The validation loss that was recorded in the last epoch.
      training_network
          The network that is being trained.
      trainer
          The trainer which is running the training.
  
      Returns
      -------
      bool
          A boolean whether the training should continue. Defaults to `True`.
      """
      return True
  
imports: from dataclasses import dataclass, field
  from typing import List, Union, Dict, Any, Optional
  import logging
  import math
  import time
  import mxnet.gluon.nn
  import mxnet
  from mxnet import gluon
  from gluonts.core.component import validated
  from gluonts.mx.util import copy_parameters
  from gluonts.pydantic import BaseModel, PrivateAttr
label_desc: Use image node_id 8 for calling the Callback obj's underlying member method code with example usage: obj.on_validation_epoch_end(epoch_no, epoch_loss, training_network, trainer) and returns: True