docstr: set the device before training
  will be called once in fast_train_mp / fast_train
docstr_tok: ["set","the","device","before","training","will","be","called","once","in","fast_train_mp","\/","fast_train"]
code: def init_device_emb(self):
      """set the device before training
      will be called once in fast_train_mp / fast_train
      """
      choices = sum(
          [self.args.only_gpu, self.args.only_cpu, self.args.mix]
      )
      assert (
          choices == 1
      ), "Must choose only *one* training mode in [only_cpu, only_gpu, mix]"
  
      # initializing embedding on CPU
      self.emb_model = SkipGramModel(
          emb_size=self.emb_size,
          emb_dimension=self.args.dim,
          walk_length=self.args.walk_length,
          window_size=self.args.window_size,
          batch_size=self.args.batch_size,
          only_cpu=self.args.only_cpu,
          only_gpu=self.args.only_gpu,
          mix=self.args.mix,
          neg_weight=self.args.neg_weight,
          negative=self.args.negative,
          lr=self.args.lr,
          lap_norm=self.args.lap_norm,
          fast_neg=self.args.fast_neg,
          record_loss=self.args.print_loss,
          norm=self.args.norm,
          use_context_weight=self.args.use_context_weight,
          async_update=self.args.async_update,
          num_threads=self.args.num_threads,
      )
  
      torch.set_num_threads(self.args.num_threads)
      if self.args.only_gpu:
          print("Run in 1 GPU")
          assert self.args.gpus[0] >= 0
          self.emb_model.all_to_device(self.args.gpus[0])
      elif self.args.mix:
          print("Mix CPU with %d GPU" % len(self.args.gpus))
          if len(self.args.gpus) == 1:
              assert (
                  self.args.gpus[0] >= 0
              ), "mix CPU with GPU should have available GPU"
              self.emb_model.set_device(self.args.gpus[0])
      else:
          print("Run in CPU process")
          self.args.gpus = [torch.device("cpu")]
  
file_path: dgl/examples/pytorch/ogb/deepwalk/deepwalk.py
imports: import argparse
  import os
  import random
  import time
  import dgl
  import numpy
  import torch
  import torch.multiprocessing
  from model import SkipGramModel
  from reading_data import DeepwalkDataset
  from torch.utils.data import DataLoader
  from utils import shuffle_walks, sum_up_params
label_desc: Use image node_id 2 for calling the DeepwalkTrainer obj's underlying member method code with example usage: obj.init_device_emb() without return types