code: def _calculate_skip_samples(
      self, num_workers: int, worker_id: int
  ) -> int:
      # this function is used for calcuate how many samples we should skip per
      # each worker when resuming from a checkpoint
      per_replica_skip = self.start_iter * self.batch_size
      per_worker_skip = per_replica_skip // num_workers
      # since dataloader fetching from each worker by roundrobin so we can
      # calculate exactly which worker has one extra to skip when per_replica_skip
      # can't be divided by num_workers cleanly
      if worker_id < per_replica_skip % num_workers:
          per_worker_skip += 1
      return per_worker_skip
  
file_path: vissl/vissl/data/airstore_dataset.py
imports: import io
  import logging
  from typing import Any, Iterable, Tuple
  import torch
  from classy_vision.generic.distributed_util import get_rank, get_world_size
  from iopath.common.file_io import PathManager
  from PIL import Image, ImageFile
  from vissl.config import AttrDict
  from vissl.data.data_helper import get_mean_image, QueueDataset
label_desc: Use image node_id 4 for calling the AirstoreDataset obj's underlying member method code with example usage: obj._calculate_skip_samples(num_workers, worker_id) and returns: per_worker_skip