|
|
|
@ -222,6 +222,33 @@ class Parameters(object):
|
|
|
|
|
|
|
|
|
|
self.__gradient_machines__.append(gradient_machine)
|
|
|
|
|
|
|
|
|
|
def __getstate__(self):
|
|
|
|
|
params = {}
|
|
|
|
|
for name in self.names():
|
|
|
|
|
params[name] = self.get(name)
|
|
|
|
|
|
|
|
|
|
param_conf = {}
|
|
|
|
|
for name in self.__param_conf__:
|
|
|
|
|
conf = self.__param_conf__[name]
|
|
|
|
|
assert isinstance(conf, ParameterConfig)
|
|
|
|
|
param_conf[name] = conf.SerializeToString()
|
|
|
|
|
|
|
|
|
|
return {'conf': param_conf, 'params': params}
|
|
|
|
|
|
|
|
|
|
def __setstate__(self, obj):
|
|
|
|
|
Parameters.__init__(self)
|
|
|
|
|
|
|
|
|
|
def __impl__(conf, params):
|
|
|
|
|
for name in conf:
|
|
|
|
|
p = ParameterConfig()
|
|
|
|
|
p.ParseFromString(conf[name])
|
|
|
|
|
self.__append_config__(p)
|
|
|
|
|
for name in params:
|
|
|
|
|
shape = self.get_shape(name)
|
|
|
|
|
self.set(name, params[name].reshape(shape))
|
|
|
|
|
|
|
|
|
|
__impl__(**obj)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __get_parameter_in_gradient_machine__(gradient_machine, name):
|
|
|
|
|
"""
|
|
|
|
|