code: def forward(self, x, user=True, beta=None, theta=None):
      if user:
          mu, std = self.encode_user(x)
          theta = self.reparameterize(mu, std)
          return theta, self.decode_user(theta, beta), mu, std
      else:
          mu, std = self.encode_item(x)
          beta = self.reparameterize(mu, std)
          return beta, self.decode_item(theta, beta), mu, std
  
file_path: cornac/cornac/models/bivaecf/bivae.py
imports: import itertools
  import numpy
  import torch
  import torch.nn
  from tqdm.auto import trange
label_desc: Use image node_id 10 for calling the BiVAE obj's underlying member method code with example usage: obj.forward(x, user, beta, theta) and returns: theta,  self,  mu,  std, beta,  self,  mu,  std