def lazy_init_sampler()

in graphlearn_torch/python/sampler/neighbor_sampler.py [0:0]


  def lazy_init_sampler(self):
    if not self.is_sampler_initialized:
      with self._sampler_lock:
        if self._sampler is None:
          if self._g_cls == 'homo':
            if self.device.type == 'cuda':
              self._sampler = pywrap.CUDARandomSampler(self.graph.graph_handler)
            elif self.with_weight == False:
              self._sampler = pywrap.CPURandomSampler(self.graph.graph_handler)
            else:
              self._sampler = pywrap.CPUWeightedSampler(self.graph.graph_handler)
            self.is_sampler_initialized = True

          else: # hetero
            self._sampler = {}
            for etype, g in self.graph.items():
              if self.device != torch.device('cpu'):
                self._sampler[etype] = pywrap.CUDARandomSampler(g.graph_handler)
              elif self.with_weight == False:
                self._sampler[etype] = pywrap.CPURandomSampler(g.graph_handler)
              else:
                self._sampler[etype] = pywrap.CPUWeightedSampler(g.graph_handler)
            self.is_sampler_initialized = True