class_docstr: The neural network from the paper "Encoder-Decoder with Atrous Separable Convolution for Semantic Image
  Segmentation" https://arxiv.org/abs/1802.02611
class_docstr_tok: ["The","neural","network","from","the","paper","``","Encoder-Decoder","with","Atrous","Separable","Convolution","for","Semantic","Image","Segmentation","''","https",":","\/\/arxiv.org\/abs\/1802.02611"]
code: def forward(self, features: torch.Tensor) -> torch.Tensor:
      spatial_size = features.shape[-2:]
  
      features_pool = self.avg_pool(features)
      features_pool = self.conv_pool(features_pool)
      features_pool = nn.functional.interpolate(
          features_pool,
          size=spatial_size,
          mode="bilinear",
          align_corners=True,
      )
  
      features_aspp = self.conv_aspp(features)
  
      features = torch.cat([features_pool, features_aspp], dim=1)
  
      features = self.conv_projection(features)
      features = self.dropout(features)
      features = self.classifier(features)
      return features
  
imports: from typing import Optional, Union
  import torch
  from torch import nn
  from torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss
  from ...activations import ACT2FN
  from ...modeling_outputs import BaseModelOutputWithPoolingAndNoAttention, ImageClassifierOutputWithNoAttention, SemanticSegmenterOutput
  from ...modeling_utils import PreTrainedModel
  from ...utils import add_code_sample_docstrings, add_start_docstrings, add_start_docstrings_to_model_forward, logging, replace_return_docstrings
  from .configuration_mobilenet_v2 import MobileNetV2Config
label_desc: Use image node_id 2 for calling the MobileNetV2DeepLabV3Plus obj's underlying member method code with example usage: obj.forward(features) and returns: features