code: def get_augmented_dataset(
      dataset, num_noises: int = 100, sigma: float = 0.1
  ):
      train_data_list = list(iter(dataset.train_ds))
      train_length = len(train_data_list)
  
      for _ in range(num_noises):
          for idx in range(train_length):
              target = train_data_list[idx]["target"]
              data = {
                  "start": train_data_list[idx]["start"],
                  "target": target
                  + np.random.normal(
                      loc=np.zeros_like(target), scale=sigma * target
                  ),
                  "feat_static_cat": train_data_list[idx][
                      "feat_static_cat"
                  ].copy(),
                  "item_id": None,
                  "source": None,
              }
              train_data_list.append(data)
  
      random.shuffle(train_data_list)
      return ListDataset(
          data_iter=train_data_list,
          freq=dataset.freq,
          one_dim_target=False,
      )
  
imports: import json
  import pickle
  import random
  import torch
  import numpy
  import pandas
  from tqdm.auto import tqdm
  from typing import Iterator
  from gluonts.dataset.common import DataEntry, Dataset, ListDataset
label_desc: Use image node_id 3 for calling a global function with example usage: get_augmented_dataset(dataset, num_noises, sigma) and returns: ListDataset