class_docstr: Negative sampling based skip-gram
class_docstr_tok: ["Negative","sampling","based","skip-gram"]
code: def get_embedding(self):
      if self.fst:
          embedding_fst = (
              self.fst_u_embeddings.weight.cpu().data.numpy()
          )
          embedding_fst /= np.sqrt(
              np.sum(embedding_fst * embedding_fst, 1)
          ).reshape(-1, 1)
      if self.snd:
          embedding_snd = (
              self.snd_u_embeddings.weight.cpu().data.numpy()
          )
          embedding_snd /= np.sqrt(
              np.sum(embedding_snd * embedding_snd, 1)
          ).reshape(-1, 1)
      if self.fst and self.snd:
          embedding = np.concatenate((embedding_fst, embedding_snd), 1)
          embedding /= np.sqrt(
              np.sum(embedding * embedding, 1)
          ).reshape(-1, 1)
      elif self.fst and not self.snd:
          embedding = embedding_fst
      elif self.snd and not self.fst:
          embedding = embedding_snd
      else:
          pass
  
      return embedding
  
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 12 for calling the SkipGramModel obj's underlying member method code with example usage: obj.get_embedding() and returns: embedding