class_docstr: This iterator will reset itself **only** when it is acquired by
  the syntax of normal `iterator`. That is, this iterator just works
  like a `torch.data.DataLoader`. If you want to restart it, you
  should use it like:
  
      ```
      loader_iter = ValDataLoaderIter(data_loader)
      for batch in loader_iter:
          ...
  
      # `loader_iter` should run out of values now, you can restart it by:
      # 1. the way we use a `torch.data.DataLoader`
      for batch in loader_iter:        # __iter__ is called implicitly
          ...
  
      # 2. passing it into `iter()` manually
      loader_iter = iter(loader_iter)  # __iter__ is called by `iter()`
      ```
class_docstr_tok: ["This","iterator","will","reset","itself","*","*","only","*","*","when","it","is","acquired","by","the","syntax","of","normal","`","iterator","`",".","That","is",",","this","iterator","just","works","like","a","`","torch.data.DataLoader","`",".","If","you","want","to","restart","it",",","you","should","use","it","like",":","``","`","loader_iter","=","ValDataLoaderIter","(","data_loader",")","for","batch","in","loader_iter",":","...","#","`","loader_iter","`","should","run","out","of","values","now",",","you","can","restart","it","by",":","#","1.","the","way","we","use","a","`","torch.data.DataLoader","`","for","batch","in","loader_iter",":","#","__iter__","is","called","implicitly","...","#","2.","passing","it","into","`","iter","(",")","`","manually","loader_iter","=","iter","(","loader_iter",")","#","__iter__","is","called","by","`","iter","(",")","`","``","`"]
code: def __iter__(self):
      if self.run_counter >= self.run_limit:
          self._iterator = iter(self.data_loader)
          self.run_counter = 0
      return self
  
imports: from __future__ import annotations
  import pickle
  import types
  import warnings
  from functools import partial
  from typing import TYPE_CHECKING, Any, Callable
  import numpy
  import torch
  import torch.nn
  from torch.optim import Optimizer
  from torch.serialization import DEFAULT_PROTOCOL
  from torch.utils.data import DataLoader
  from monai.networks.utils import eval_mode
  from monai.optimizers.lr_scheduler import ExponentialLR, LinearLR
  from monai.utils import StateCacher, copy_to_device, optional_import
label_desc: Use image node_id 2 for calling the ValDataLoaderIter obj's underlying member method code with example usage: obj.__iter__() and returns: self