code: def guide(self, data, batch_size, **kwargs):
      pyro.module("rnn", self.rnn),
      pyro.module("predict", self.predict),
      pyro.module("encode", self.encode),
      pyro.module("embed", self.embed),
      pyro.module("bl_rnn", self.bl_rnn),
      pyro.module("bl_predict", self.bl_predict),
      pyro.module("bl_embed", self.bl_embed)
  
      pyro.param("h_init", self.h_init)
      pyro.param("c_init", self.c_init)
      pyro.param("z_where_init", self.z_where_init)
      pyro.param("z_what_init", self.z_what_init)
      pyro.param("bl_h_init", self.bl_h_init)
      pyro.param("bl_c_init", self.bl_c_init)
  
      with pyro.plate(
          "data",
          data.size(0),
          subsample_size=batch_size,
          device=data.device,
      ) as ix:
          batch = data[ix]
          n = batch.size(0)
  
          # Embed inputs.
          flattened_batch = batch.view(n, -1)
          inputs = {
              "raw": batch,
              "embed": self.embed(flattened_batch),
              "bl_embed": self.bl_embed(flattened_batch),
          }
  
          # Initial state.
          state = GuideState(
              h=self.h_init.expand(n, -1),
              c=self.c_init.expand(n, -1),
              bl_h=self.bl_h_init.expand(n, -1),
              bl_c=self.bl_c_init.expand(n, -1),
              z_pres=torch.ones(n, self.z_pres_size, **self.options),
              z_where=self.z_where_init.expand(n, -1),
              z_what=self.z_what_init.expand(n, -1),
          )
  
          z_pres = []
          z_where = []
  
          for t in range(self.num_steps):
              state = self.guide_step(t, n, state, inputs)
              z_where.append(state.z_where)
              z_pres.append(state.z_pres)
  
          return z_where, z_pres
  
imports: from collections import namedtuple
  import torch
  import torch.nn
  import torch.nn.functional
  from modules import MLP, Decoder, Encoder, Identity, Predict
  import pyro
  import pyro.distributions
label_desc: Use image node_id 5 for calling the AIR obj's underlying member method code with example usage: obj.guide(data, batch_size) and returns: z_where,  z_pres