class_docstr: A helper model so we can manange models more easily. It contains net def
  and parameter storages. You can add an Operator yourself, e.g.
  
      model = model_helper.ModelHelper(name="train_net")
      # init your weight and bias as w and b
      w = model.param_init_net.XavierFill(...)
      b = model.param_init_net.ConstantFill(...)
      fc1 = model.FC([input, w, b], output, **kwargs)
  
  or you can use helper functions in brew module without manually
  defining parameter initializations and operators.
  
      model = model_helper.ModelHelper(name="train_net")
      fc1 = brew.fc(model, input, output, dim_in, dim_out, **kwargs)
code: def __init__(
      self,
      name=None,
      init_params=True,
      allow_not_known_ops=True,
      skip_sparse_optim=False,
      param_model=None,
      arg_scope=None,
  ):
      self.name = name or "model"
      self.net = core.Net(self.name)
  
      if param_model is not None:
          self.param_init_net = param_model.param_init_net
          self.param_to_grad = param_model.param_to_grad
          self.params = param_model.params
          self._parameters_info = param_model._parameters_info
          self._computed_params = param_model._computed_params
      else:
          self.param_init_net = core.Net(self.name + "_init")
          self.param_to_grad = {}
          self.params = []
          self._parameters_info = {}
          self._computed_params = []
  
      self._param_info_deprecated = []
      self._devices = []
      self.gradient_ops_added = False
      self.init_params = init_params
      self.allow_not_known_ops = allow_not_known_ops
      self.skip_sparse_optim = skip_sparse_optim
      self.weights = []
      self.biases = []
      self._arg_scope = {
          "order": "NCHW",
          "use_cudnn": True,
          "cudnn_exhaustive_search": False,
      }
      if arg_scope is not None:
          # Please notice value as None is not acceptable. We are not checking it
          # here because we already have check in MakeArgument.
          self._arg_scope.update(arg_scope)
  
imports: from caffe2.python import core, scope, workspace
  from caffe2.python.helpers.db_input import db_input
  from caffe2.python.modeling import parameter_info
  from caffe2.python.modeling.parameter_sharing import parameter_sharing_context
  from caffe2.python.optimizer_context import OptimizerContext, DEFAULT_OPTIM
  from caffe2.python.regularizer_context import RegularizerContext
  from itertools import chain
  import logging
label_desc: Use image node_id 1 to create a new ModelHelper object  with example: obj = ModelHelper(name, init_params, allow_not_known_ops, skip_sparse_optim, param_model, arg_scope)