class_docstr: SSD model is like a Tree, except with additional handling for the output layer, and
  for the prior boxes
class_docstr_tok: ["SSD","model","is","like","a","Tree",",","except","with","additional","handling","for","the","output","layer",",","and","for","the","prior","boxes"]
code: def bprop(self, error, alpha=1.0, beta=0.0):
      # error will be a tuple with (loc_deltas, conf_deltas) from the
      # the mulitbox loss layer
      # first unconcatenate and unravel the deltas for each layer
  
      (loc_err, conf_err) = error
  
      loc_err = self.concat_loc.bprop(loc_err)
      conf_err = self.concat_conf.bprop(conf_err)
  
      errors = {"mbox_conf": conf_err, "mbox_loc": loc_err}
  
      # for mgpu, fragment the tensors
      self.distribute_tensors(errors, parallelism="Data")
  
      errors = self.nest(errors)
  
      # errors can go into Tree bprop now
      errors = super(SSD, self).bprop(errors)
  
      self.revert_tensors(self.altered_tensors)
      return errors
  
imports: from neon.initializers import Constant, Xavier
  from neon.transforms import Rectlin
  from neon.layers import Conv, Pooling, BranchNode
  from layer import Normalize, PriorBox, DetectionOutput, ConcatTranspose
  import numpy
  from neon.util.persist import load_obj
  from neon.layers.container import Tree
  from neon.layers.layer import Layer
  from collections import OrderedDict
  import inspect
  import re
  from neon.data.datasets import Dataset
  import os
label_desc: Use image node_id 18 for calling the SSD obj's underlying member method code with example usage: obj.bprop(error, alpha, beta) and returns: errors