class_docstr: A string with magic powers to compare to both Version and iterables!
  Prior to 1.10.0 torch.__version__ was stored as a str and so many did
  comparisons against torch.__version__ as if it were a str. In order to not
  break them we have TorchVersion which masquerades as a str while also
  having the ability to compare against both packaging.version.Version as
  well as tuples of values, eg. (1, 2, 1)
  Examples:
      Comparing a TorchVersion object to a Version object
          TorchVersion('1.10.0a') > Version('1.10.0a')
      Comparing a TorchVersion object to a Tuple object
          TorchVersion('1.10.0a') > (1, 2)    # 1.2
          TorchVersion('1.10.0a') > (1, 2, 1) # 1.2.1
      Comparing a TorchVersion object against a string
          TorchVersion('1.10.0a') > '1.2'
          TorchVersion('1.10.0a') > '1.2.1'
code: def _convert_to_version(self, inp: Any) -> Any:
      if isinstance(inp, Version):
          return inp
      elif isinstance(inp, str):
          return Version(inp)
      elif isinstance(inp, Iterable):
          # Ideally this should work for most cases by attempting to group
          # the version tuple, assuming the tuple looks (MAJOR, MINOR, ?PATCH)
          # Examples:
          #   * (1)         -> Version("1")
          #   * (1, 20)     -> Version("1.20")
          #   * (1, 20, 1)  -> Version("1.20.1")
          return Version(".".join(str(item) for item in inp))
      else:
          raise InvalidVersion(inp)
  
imports: from typing import Any, Iterable
  from .version import __version__
  from ._vendor.packaging.version import Version, InvalidVersion
label_desc: Use image node_id 1 for calling the TorchVersion obj's underlying member method code with example usage: obj._convert_to_version(inp) and returns: inp, Version, Version