code: def get_dataset(
      mode="classification",
      featurizer="GraphConv",
      num_tasks=2,
      data_points=20,
  ):
      if mode == "classification":
          tasks, all_dataset, transformers = load_bace_classification(
              featurizer, reload=False
          )
      else:
          tasks, all_dataset, transformers = load_delaney(
              featurizer, reload=False
          )
  
      train, _, _ = all_dataset
      for _ in range(1, num_tasks):
          tasks.append("random_task")
      w = np.ones(shape=(data_points, len(tasks)))
  
      if mode == "classification":
          y = np.random.randint(0, 2, size=(data_points, len(tasks)))
          metric = Metric(roc_auc_score, np.mean, mode="classification")
      else:
          y = np.random.normal(size=(data_points, len(tasks)))
          metric = Metric(mean_absolute_error, mode="regression")
  
      ds = NumpyDataset(
          train.X[:data_points], y, w, train.ids[:data_points]
      )
  
      return tasks, ds, transformers, metric
  
file_path: deepchem/deepchem/models/tests/test_weave_models.py
imports: import numpy
  import pytest
  from flaky import flaky
  from deepchem.data import NumpyDataset
  from deepchem.metrics import Metric, roc_auc_score, mean_absolute_error
  from deepchem.molnet import load_bace_classification, load_delaney
  from deepchem.feat import WeaveFeaturizer
label_desc: Use image node_id 1 for calling a global function with example usage: get_dataset(mode, featurizer, num_tasks, data_points) and returns: tasks,  ds,  transformers,  metric