docstr: Move report to a specific device defined 'device' parameter.
  This is similar to how one moves a tensor or sample_list to a device
  
  Args:
      device (torch.device): Device can be str defining device or torch.device
      non_blocking (bool, optional): Whether transfer should be non_blocking.
          Defaults to True.
      fields (List[str], optional): Use this is you only want to move some
          specific fields to the device instead of full report. Defaults to None.
  
  Raises:
      TypeError: If device type is not correct
  
  Returns:
      Report: Updated report is returned back
docstr_tok: ["Move","report","to","a","specific","device","defined","'device","'","parameter",".","This","is","similar","to","how","one","moves","a","tensor","or","sample_list","to","a","device","Args",":","device","(","torch.device",")",":","Device","can","be","str","defining","device","or","torch.device","non_blocking","(","bool",",","optional",")",":","Whether","transfer","should","be","non_blocking",".","Defaults","to","True",".","fields","(","List","[","str","]",",","optional",")",":","Use","this","is","you","only","want","to","move","some","specific","fields","to","the","device","instead","of","full","report",".","Defaults","to","None",".","Raises",":","TypeError",":","If","device","type","is","not","correct","Returns",":","Report",":","Updated","report","is","returned","back"]
code: def to(
      self,
      device: Union[torch.device, str],
      non_blocking: bool = True,
      fields: Optional[List[str]] = None,
  ):
      """Move report to a specific device defined 'device' parameter.
      This is similar to how one moves a tensor or sample_list to a device
  
      Args:
          device (torch.device): Device can be str defining device or torch.device
          non_blocking (bool, optional): Whether transfer should be non_blocking.
              Defaults to True.
          fields (List[str], optional): Use this is you only want to move some
              specific fields to the device instead of full report. Defaults to None.
  
      Raises:
          TypeError: If device type is not correct
  
      Returns:
          Report: Updated report is returned back
      """
      if not isinstance(device, torch.device):
          if not isinstance(device, str):
              raise TypeError(
                  "device must be either 'str' or "
                  "'torch.device' type, {} found".format(type(device))
              )
          device = torch.device(device)
  
      def fn(x):
          if hasattr(x, "to"):
              x = x.to(device, non_blocking=non_blocking)
          return x
  
      return self.apply_fn(fn, fields)
  
imports: import collections
  import collections.abc
  import copy
  import warnings
  from collections import OrderedDict
  from typing import Any, Callable, Dict, List, Optional, Union
  import torch
  from mmf.common.sample import detach_tensor, SampleList
label_desc: Use image node_id 11 for calling the Report obj's underlying member method code with example usage: obj.to(device, non_blocking, fields) and returns: self, x