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 __init__(
      self,
      input_dim: int,
      output_dim: int,
      child: Optional[nn.Module] = None,
  ):
      super().__init__()
      self.child = child
      self.input_conv = nn.Conv2d(
          in_channels=input_dim, out_channels=output_dim, kernel_size=1
      )
      self.output_conv = nn.Conv2d(
          in_channels=output_dim, out_channels=input_dim, kernel_size=1
      )
  
imports: from typing import Optional
  import torch.nn
  from neuralcompression import VqVaeAutoencoderOutput
label_desc: Use image node_id 1 to create a new ProjectLatent object from inherited base classes: nn with example: obj = ProjectLatent(input_dim, output_dim, child)