class_docstr: Adapted from the NumPy implementation at:
  https://gist.github.com/rtqichen/91924063aa4cc95e7ef30b3a5491cc52
class_docstr_tok: ["Adapted","from","the","NumPy","implementation","at",":","https",":","\/\/gist.github.com\/rtqichen\/91924063aa4cc95e7ef30b3a5491cc52"]
code: def forward(self, t, states):
      z = states[0]
      logp_z = states[1]
  
      batchsize = z.shape[0]
  
      with torch.set_grad_enabled(True):
          z.requires_grad_(True)
  
          W, B, U = self.hyper_net(t)
  
          Z = torch.unsqueeze(z, 0).repeat(self.width, 1, 1)
  
          h = torch.tanh(torch.matmul(Z, W) + B)
          dz_dt = torch.matmul(h, U).mean(0)
  
          dlogp_z_dt = -trace_df_dz(dz_dt, z).view(batchsize, 1)
  
      return (dz_dt, dlogp_z_dt)
  
imports: import os
  import argparse
  import glob
  from PIL import Image
  import numpy
  import matplotlib
  import matplotlib.pyplot
  from sklearn.datasets import make_circles
  import torch
  import torch.nn
  import torch.optim
label_desc: Use image node_id 2 for calling the CNF obj's underlying member method code with example usage: obj.forward(t, states) and returns: dz_dt,  dlogp_z_dt