code: def allocate(self, shared_outputs=None):
      self.conf = self.be.iobuf((self.num_boxes * self.num_classes))
      self.loc = self.be.iobuf((self.num_boxes * 4))
  
      # intermediate buffer for compute
      # these are needed to keep compute on the GPU
      # 1. proposals for each class and image
      # 2. store detections after sort/threshold
      # 3. store softmax
      self.proposals = self.be.empty((self.num_boxes, 4))
      self.detections = self.be.empty((self.nms_topk, 5))
      self.scores = self.be.empty((self.num_boxes, self.num_classes))
  
imports: from neon.layers.layer import Layer, ParameterLayer
  import numpy
  from neon.transforms import Softmax
  from neon.initializers.initializer import Constant
  import math
  from collections import OrderedDict
label_desc: Use image node_id 3 for calling the DetectionOutput obj's underlying member method code with example usage: obj.allocate(shared_outputs) without return types