class_docstr: Base class of model to provide attack.
  
  Args:
      bounds(tuple): The lower and upper bound for the image pixel.
      channel_axis(int): The index of the axis that represents the color
              channel.
      preprocess(tuple): Two element tuple used to preprocess the input.
          First substract the first element, then divide the second element.
class_docstr_tok: ["Base","class","of","model","to","provide","attack",".","Args",":","bounds","(","tuple",")",":","The","lower","and","upper","bound","for","the","image","pixel",".","channel_axis","(","int",")",":","The","index","of","the","axis","that","represents","the","color","channel",".","preprocess","(","tuple",")",":","Two","element","tuple","used","to","preprocess","the","input",".","First","substract","the","first","element",",","then","divide","the","second","element","."]
docstr: Determine the number of the classes
  
  Return:
      int: the number of the classes
docstr_tok: ["Determine","the","number","of","the","classes","Return",":","int",":","the","number","of","the","classes"]
code: def num_classes(self):
      """
      Determine the number of the classes
  
      Return:
          int: the number of the classes
      """
      raise NotImplementedError
  
file_path: AdvBox/adversarialbox/models/base.py
imports: from __future__ import division
  from builtins import object
  from past.utils import old_div
  from abc import ABCMeta
  from abc import abstractmethod
  import numpy
  from future.utils import with_metaclass
label_desc: Use image node_id 6 for calling the Model obj's underlying member method code with example usage: obj.num_classes() without return types