class_docstr: Negative sampling based skip-gram
class_docstr_tok: ["Negative","sampling","based","skip-gram"]
docstr: For ogb leaderboard
docstr_tok: ["For","ogb","leaderboard"]
code: def save_embedding_pt_dgl_graph(self, dataset, file_name):
      """For ogb leaderboard"""
      embedding = torch.zeros_like(self.u_embeddings.weight.cpu().data)
      valid_seeds = torch.LongTensor(dataset.valid_seeds)
      valid_embedding = (
          self.u_embeddings.weight.cpu().data.index_select(
              0, valid_seeds
          )
      )
      embedding.index_add_(0, valid_seeds, valid_embedding)
  
      if self.norm:
          embedding /= torch.sqrt(
              torch.sum(embedding.mul(embedding), 1) + 1e-6
          ).unsqueeze(1)
  
      torch.save(embedding, file_name)
  
imports: import random
  import numpy
  import torch
  import torch.multiprocessing
  import torch.nn
  import torch.nn.functional
  from torch.multiprocessing import Queue
  from torch.nn import init
label_desc: Use image node_id 13 for calling the SkipGramModel obj's underlying member method code with example usage: obj.save_embedding_pt_dgl_graph(dataset, file_name) without return types