class_docstr: NVTabular-based DataModule for TorchEstimator for GPU-accelerated data loading of tabular datasets.
  
  Note: requires `label_cols`, `categorical_cols`, and `continuous_cols` to be explicitly provided.
class_docstr_tok: ["NVTabular-based","DataModule","for","TorchEstimator","for","GPU-accelerated","data","loading","of","tabular","datasets",".","Note",":","requires","`","label_cols","`",",","`","categorical_cols","`",",","and","`","continuous_cols","`","to","be","explicitly","provided","."]
docstr: Generate consistent dataloader shuffle seeds across workers
  Reseeds each worker's dataloader each epoch to get fresh a shuffle
  that's consistent across workers.
docstr_tok: ["Generate","consistent","dataloader","shuffle","seeds","across","workers","Reseeds","each","worker","'s","dataloader","each","epoch","to","get","fresh","a","shuffle","that","'s","consistent","across","workers","."]
code: def seed_fn():
      """
      Generate consistent dataloader shuffle seeds across workers
      Reseeds each worker's dataloader each epoch to get fresh a shuffle
      that's consistent across workers.
      """
      import numpy as np
      import torch
  
      hvd.init()
      seed = np.random.randint(0, torch.iinfo(torch.int32).max)
      seed_tensor = torch.tensor(seed)
      root_seed = hvd.broadcast(
          seed_tensor, name="shuffle_seed", root_rank=0
      )
      return root_seed
  
imports: import contextlib
  import glob
  import horovod.torch
  import os
  from horovod.spark.common import constants
  from horovod.spark.common.datamodule import DataModule
label_desc: Use image node_id 2 for calling the NVTabularDataModule obj's underlying member method code with example usage: obj.seed_fn() and returns: root_seed