def create_param(self, param_name, shape, initializer, optimizer=None, ps_param=None): if isinstance(param_name, core.BlobReference): param_name = str(param_name) elif isinstance(param_name, six.string_types): # Parameter name will be equal to current Namescope that got # resolved with the respect of parameter sharing of the scopes. param_name = parameter_sharing_context.get_parameter_name( param_name) else: raise "Unsupported type for param_name" param_blob = core.BlobReference(param_name) if len(initializer) == 1: init_op_args = {} else: assert len(initializer) == 2 init_op_args = initializer[1] if shape is not None: init_op_args.update({'shape': shape}) param = layers.LayerParameter( parameter=param_blob, initializer=core.CreateOperator( initializer[0], [], param_blob, **init_op_args ), optimizer=optimizer, ps_param=ps_param, ) return param
def create_param(self, param_name, shape, initializer, optimizer=None, ps_param=None, regularizer=None): if isinstance(param_name, core.BlobReference): param_name = str(param_name) elif isinstance(param_name, six.string_types): # Parameter name will be equal to current Namescope that got # resolved with the respect of parameter sharing of the scopes. param_name = parameter_sharing_context.get_parameter_name( param_name) else: raise ValueError("Unsupported type for param_name") param_blob = core.BlobReference(param_name) if len(initializer) == 1: init_op_args = {} else: assert len(initializer) == 2 init_op_args = copy.deepcopy(initializer[1]) if shape is not None: assert 'shape' not in init_op_args init_op_args.update({'shape': shape}) initializer_op = None if self._initialize_params: initializer_op = core.CreateOperator( initializer[0], [], param_blob, **init_op_args ) param = layers.LayerParameter( parameter=param_blob, initializer=initializer_op, optimizer=optimizer, ps_param=ps_param, regularizer=regularizer ) self._validate_param_shape(param_name, shape) self._validate_param_optim(param_name, optimizer) self._param_to_shape[param_name] = shape return param