docstr: :param x: input feature map (b, in_c, y, x, (z))
  :return: bb_logits (b, n_anchors, dim * 2)
docstr_tok: [":","param","x",":","input","feature","map","(","b",",","in_c",",","y",",","x",",","(","z",")",")",":","return",":","bb_logits","(","b",",","n_anchors",",","dim","*","2",")"]
code: def forward(self, x):
      """
      :param x: input feature map (b, in_c, y, x, (z))
      :return: bb_logits (b, n_anchors, dim * 2)
      """
      x = self.conv_1(x)
      x = self.conv_2(x)
      x = self.conv_3(x)
      x = self.conv_4(x)
      bb_logits = self.conv_final(x)
  
      axes = (0, 2, 3, 1) if self.dim == 2 else (0, 2, 3, 4, 1)
      bb_logits = bb_logits.permute(*axes)
      bb_logits = bb_logits.contiguous()
      bb_logits = bb_logits.view(x.size()[0], -1, self.dim * 2)
  
      return [bb_logits]
  
imports: import utils.model_utils
  import utils.exp_utils
  import sys
  from cuda_functions.nms_2D.pth_nms import nms_gpu
  from cuda_functions.nms_3D.pth_nms import nms_gpu
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.utils
label_desc: Use image node_id 2 for calling the BBRegressor obj's underlying member method code with example usage: obj.forward(x) and returns: list