code: def get(self, step):
      if step < self.warmup_steps:
          return self.max_val * step / self.warmup_steps
      elif self.warmup_steps <= step <= self.total_steps:
          return (
              self.max_val
              * (
                  1
                  + np.cos(
                      (step - self.warmup_steps)
                      * np.pi
                      / (self.total_steps - self.warmup_steps)
                  )
              )
              / 2
          )
      else:
          raise ValueError(
              "Step ({}) > total number of steps ({}).".format(
                  step, self.total_steps
              )
          )
  
file_path: dgl/examples/pytorch/bgrl/utils.py
imports: import copy
  import numpy
  import torch
  from dgl.data import AmazonCoBuyComputerDataset, AmazonCoBuyPhotoDataset, CoauthorCSDataset, CoauthorPhysicsDataset, PPIDataset, WikiCSDataset
  from dgl.dataloading import GraphDataLoader
  from dgl.transforms import Compose, DropEdge, FeatMask, RowFeatNormalizer
label_desc: Use image node_id 2 for calling the CosineDecayScheduler obj's underlying member method code with example usage: obj.get(step) and returns: unknown, unknown