class_docstr: An object representing a range of sizes for an image feature inside a
  neural network. Valid ranges for height and width are > 0. A "-1"
  upper bound value for either width or height represents an unbounded size
  for that dimension.
class_docstr_tok: ["An","object","representing","a","range","of","sizes","for","an","image","feature","inside","a","neural","network",".","Valid","ranges","for","height","and","width","are",">","0",".","A","``","-1","''","upper","bound","value","for","either","width","or","height","represents","an","unbounded","size","for","that","dimension","."]
code: def add_width_range(self, width_range):
      if not isinstance(width_range, ShapeRange):
          if not isinstance(width_range, tuple):
              raise Exception(
                  "Width range should be a ShapeRange or a tuple object"
              )
          elif len(width_range) != 2:
              raise Exception(
                  "Width range tuple should be at least length 2"
              )
  
      self._width_range = ShapeRange(width_range[0], width_range[1])
  
imports: from ...None import _MINIMUM_FLEXIBLE_SHAPES_SPEC_VERSION, _MINIMUM_NDARRAY_SPEC_VERSION
  from ..utils import _get_feature
label_desc: Use image node_id 2 for calling the NeuralNetworkImageSizeRange obj's underlying member method code with example usage: obj.add_width_range(width_range) without return types