code: def encoder(self, g, features):
      h = self.layers[0](g, features)
      self.mean = self.layers[1](g, h)
      self.log_std = self.layers[2](g, h)
      gaussian_noise = torch.randn(
          features.size(0), self.hidden2_dim
      ).to(device)
      sampled_z = self.mean + gaussian_noise * torch.exp(
          self.log_std
      ).to(device)
      return sampled_z
  
file_path: dgl/examples/pytorch/vgae/model.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from dgl.nn.pytorch import GraphConv
  from train import device
label_desc: Use image node_id 2 for calling the VGAEModel obj's underlying member method code with example usage: obj.encoder(g, features) and returns: sampled_z