class_docstr: Simple bottleneck as domain specific feature extractor, used in multi-source domain adaptation method MFSAN only.
  Compared to the torchvision implementation, it accepts both 1D and 2D input, and the value of expansion is
  flexible and an average pooling layer is added.
  
  The code is based on:
      https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py#L86,
      https://github.com/easezyc/deep-transfer-learning/blob/master/MUDA/MFSAN/MFSAN_2src/resnet.py#L94, and
      https://github.com/easezyc/deep-transfer-learning/blob/master/MUDA/MFSAN/MFSAN_3src/resnet.py#L93
code: def forward(self, x):
      if self.input_dimension == 1 and len(x.shape) == 2:
          x = x.view(x.shape + (1,))
      out = self.conv1(x)
      out = self.bn1(out)
      out = self.relu(out)
  
      out = self.conv2(out)
      out = self.bn2(out)
      out = self.relu(out)
  
      out = self.conv3(out)
      out = self.bn3(out)
      out = self.relu(out)
  
      out = self.avgpool(out)
      out = out.view(out.size(0), -1)
  
      return out
  
imports: import torch.nn
  from torch.nn import functional
  from torchvision import models
label_desc: Use image node_id 2 for calling the _Bottleneck obj's underlying member method code with example usage: obj.forward(x) and returns: out