code: def init_weights(self, val_range=None):
      # val_range = val_range or (3.0/self.n_d)**0.5
      params = (
          list(self.embedding_layer.parameters())
          + list(self.output_layer.parameters())
          + (list(self.rnn.parameters()) if self.args.lstm else [])
      )
      for p in params:
          if p.dim() > 1:  # matrix
              val = val_range or (3.0 / p.size(0)) ** 0.5
              p.data.uniform_(-val, val)
          else:
              p.data.zero_()
  
imports: import sys
  import os
  import argparse
  import time
  import random
  import math
  import numpy
  import torch
  import torch.nn
  import torch.optim
  import torch.nn.functional
  from torch.autograd import Variable
  from tensorboardX import SummaryWriter
  import sru
label_desc: Use image node_id 2 for calling the Model obj's underlying member method code with example usage: obj.init_weights(val_range) without return types