code: def test_vae(self):
      class VAE(nn.Module):
          def __init__(self):
              super(VAE, self).__init__()
  
              self.fc1 = nn.Linear(784, 400)
              self.fc21 = nn.Linear(400, 20)
              self.fc22 = nn.Linear(400, 20)
              self.fc3 = nn.Linear(20, 400)
              self.fc4 = nn.Linear(400, 784)
  
          def encode(self, x):
              h1 = F.relu(self.fc1(x))
              return self.fc21(h1), self.fc22(h1)
  
          def reparameterize(self, mu, logvar):
              if self.training:
                  std = torch.exp(0.5 * logvar)
                  eps = torch.randn_like(std)
                  return eps.mul(std).add_(mu)
              else:
                  return mu
  
          def decode(self, z):
              h3 = F.relu(self.fc3(z))
              return torch.sigmoid(self.fc4(h3))
  
          def forward(self, x):
              mu, logvar = self.encode(x.view(-1, 784))
              z = self.reparameterize(mu, logvar)
              return self.decode(z), mu, logvar
  
      self.checkExportImport(
          VAE().eval(), (torch.rand(128, 1, 28, 28),)
      )
  
imports: import unittest
  import torch
  import torch.nn.functional
  import torchvision
  import nni.nas.nn.pytorch.layers
  from nni.nas.nn.pytorch import ParametrizedModule
  from .convert_mixin import ConvertMixin, ConvertWithShapeMixin
label_desc: Use image node_id 8 for calling the TestConvert obj's underlying member method code with example usage: obj.test_vae() and returns: self,  self, torch, self,  mu,  logvar, eps, mu