code: def forward(self, input: Tensor) -> Tensor:  # noqa: F811
      if isinstance(input, Tensor):
          prev_features = [input]
      else:
          prev_features = input
  
      if self.memory_efficient and self.any_requires_grad(
          prev_features
      ):
          if torch.jit.is_scripting():
              raise Exception("Memory Efficient not supported in JIT")
  
          bottleneck_output = self.call_checkpoint_bottleneck(
              prev_features
          )
      else:
          bottleneck_output = self.bn_function(prev_features)
  
      new_features = self.conv2(
          self.relu2(self.norm2(bottleneck_output))
      )
      if self.drop_rate > 0:
          new_features = F.dropout(
              new_features, p=self.drop_rate, training=self.training
          )
      return new_features
  
file_path: ARKitScenes/depth_upsampling/models/mspf/blocks/dense_net.py
imports: from typing import List
  import torch
  import torch.nn.functional
  from torch import nn, Tensor
label_desc: Use image node_id 6 for calling the _DenseLayer obj's underlying member method code with example usage: obj.forward(input) and returns: new_features