class_docstr: Applies a convolution projection of the latent.
  
  This class is intended to wrap a recursive tree of operations. The
  projection is applied to the input, followed by whatever operation is
  contained in ``child``. The output of ``child`` then has an inverse
  projection applied.
  
  Args:
      input_dim: The input dimension for the projection.
      output_dim: The output dimension for the projection.
      child: A child operation to apply between forward and inverse
          projections.
code: def forward(
      self, output: VqVaeAutoencoderOutput
  ) -> VqVaeAutoencoderOutput:
      if self.child is not None:
          output.latent = self.input_conv(output.latent)
          output = self.child(output)
          output.latent = self.output_conv(output.latent)
          return output
      else:
          output.latent = self.output_conv(
              self.input_conv(output.latent)
          )
          return output
  
imports: from typing import Optional
  import torch.nn
  from neuralcompression import VqVaeAutoencoderOutput
label_desc: Use image node_id 2 for calling the ProjectLatent obj's underlying member method code with example usage: obj.forward(output) and returns: output, output