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 __init__(self, dataset, ssd_config=None, name="SSD"):
      if ssd_config is None:
          ssd_config = default_ssd_config
  
      # clean up the layer config, set types and add defaults
      self.ssd_config = self.ingest_config(ssd_config)
      (channels, self.img_h, self.img_w) = dataset.shape
  
      self.num_classes = dataset.num_classes
  
      # below method generates the base of the model (VGG + confidence and localization leafs)
      # self.layers - base model (Tree container)
      # self.leafs - list of references to the output leafs of the model
      # self.conv_layers - list of referneces to the conv layers that are
      #                     branch points for the leafs
      (layers, output_config) = self.generate_layers()
      self.output_config = output_config
  
      # now init the Tree
      super(SSD, self).__init__(layers=layers)
      self.altered_tensors = []
  
      # self.prior_boxes = [pl['mbox_prior']['layer'] for _, pl in self.output_config.items()]
  
      # generate the concat layers
      self.concat_loc = ConcatTranspose(name="concat_loc")
      self.concat_conf = ConcatTranspose(name="concat_conf")
  
      # generate the output layer (used for inference)
      self.output_layer = DetectionOutput(num_classes=self.num_classes)
  
      self.all_prior_boxes = (
          None  # placeholder for computed prior boxes
      )
      self.all_prior_boxes_dev = None
  
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 1 to create a new SSD object from inherited base classes: Tree with example: obj = SSD(dataset, ssd_config, name)