class_docstr: ```
  Abstract class used to tune and train Keras models. The fit method is
  an abstract method and must be implemented by subclasses.
  ```
class_docstr_tok: ["``","`","Abstract","class","used","to","tune","and","train","Keras","models",".","The","fit","method","is","an","abstract","method","and","must","be","implemented","by","subclasses",".","``","`"]
code: def _check_cycles(self, n_cycles, cycle_len, cycle_mult):
      if type(n_cycles) != type(1) or n_cycles < 1:
          raise ValueError("n_cycles must be >= 1")
      if type(cycle_mult) != type(1) or cycle_mult < 1:
          raise ValueError("cycle_mult must by >= 1")
      if cycle_len is not None:
          if type(cycle_len) != type(1) or cycle_len < 1:
              raise ValueError("cycle_len must either be None or >= 1")
  
      # calculate number of epochs
      if cycle_len is None:
          epochs = n_cycles
      else:
          epochs = 0
          tmp_cycle_len = cycle_len
          for i in range(n_cycles):
              epochs += tmp_cycle_len
              tmp_cycle_len *= cycle_mult
      return epochs
  
imports: from .None import utils
  from .graph.predictor import LinkPredictor, NodePredictor
  from .graph.preprocessor import LinkPreprocessor, NodePreprocessor
  from .imports import *
  from .lroptimize.lrfinder import *
  from .tabular.predictor import TabularPredictor
  from .tabular.preprocessor import TabularPreprocessor
  from .text.ner.predictor import NERPredictor
  from .text.ner.preprocessor import NERPreprocessor
  from .text.predictor import TextPredictor
  from .text.preprocessor import BERTPreprocessor, TextPreprocessor, TransformersPreprocessor
  from .vision.predictor import ImagePredictor
  from .vision.preprocessor import ImagePreprocessor
label_desc: Use image node_id 26 for calling the Learner obj's underlying member method code with example usage: obj._check_cycles(n_cycles, cycle_len, cycle_mult) and returns: epochs