code: def create_param(
      self,
      param_name,
      shape,
      initializer,
      optimizer,
      ps_param=None,
      regularizer=None,
  ):
      with scope.NameScope(self.name, reset=True):
          param = self.model.create_param(
              param_name=param_name,
              shape=shape,
              initializer=initializer,
              optimizer=optimizer,
              ps_param=ps_param,
              regularizer=regularizer,
          )
  
          # make sure we don't share parameters in the same layer
          assert all(
              param.parameter != p.parameter for p in self.params
          )
  
          self.params.append(param)
          return param.parameter
  
imports: import logging
  from collections import namedtuple
  import numpy
  from caffe2.proto import caffe2_pb2
  from caffe2.python import core, schema, scope, utils, workspace
  from caffe2.python.layers.tags import TagContext
label_desc: Use image node_id 15 for calling the ModelLayer obj's underlying member method code with example usage: obj.create_param(param_name, shape, initializer, optimizer, ps_param, regularizer) and returns: param