code: def __init__(self, dataset_path: Path, ids: List[str], preload: bool):
      self.dataset_path = Path(dataset_path)
      self.features_path = (
          dataset_path
          / "features"
          / "ICEP_V3_global_pool_skip_8_direct_resize"
      )
      self.cached_data = None
      if preload:
          self.cached_data = {}
          for id_ in tqdm(ids, desc="preload videos"):
              np_array = self.load_from_file(id_)
              shared_array = coot_utils.make_shared_array(np_array)
              self.cached_data[id_] = shared_array
  
imports: import json
  from collections import OrderedDict
  from pathlib import Path
  from typing import List
  import re
  import numpy
  import torch
  import torch.utils.data
  from tqdm import tqdm
  from gluoncv.torch.utils import coot_utils
label_desc: Use image node_id 1 to create a new ActivityNetVideoFeatureLoader object  with example: obj = ActivityNetVideoFeatureLoader(dataset_path, ids, preload)