code: def add(self, embeddings, actions, values, additional_data=None):
      # add a new set of embeddings and values to each of the underlining dictionaries
      embeddings = np.array(embeddings)
      actions = np.array(actions)
      values = np.array(values)
      for a in range(self.num_actions):
          idx = np.where(actions == a)
          curr_action_embeddings = embeddings[idx]
          curr_action_values = np.expand_dims(values[idx], -1)
          if additional_data:
              curr_additional_data = []
              for i in idx[0]:
                  curr_additional_data.append(additional_data[i])
          else:
              curr_additional_data = None
  
          self.dicts[a].add(
              curr_action_embeddings,
              curr_action_values,
              curr_additional_data,
          )
      return True
  
imports: import os
  import pickle
  import numpy
label_desc: Use image node_id 2 for calling the QDND obj's underlying member method code with example usage: obj.add(embeddings, actions, values, additional_data) and returns: True