|
|
|
@ -45,16 +45,13 @@ class Initializer:
|
|
|
|
|
@property
|
|
|
|
|
def seed(self):
|
|
|
|
|
if self._seed is None:
|
|
|
|
|
seed_ = get_seed() if get_seed() is not None else 1
|
|
|
|
|
_, seed = _get_graph_seed(seed_, "init")
|
|
|
|
|
seed, seed2 = _get_graph_seed(get_seed(), "init")
|
|
|
|
|
else:
|
|
|
|
|
seed = self._seed
|
|
|
|
|
return seed
|
|
|
|
|
seed, seed2 = self._seed + 1, 0
|
|
|
|
|
return seed, seed2
|
|
|
|
|
|
|
|
|
|
@seed.setter
|
|
|
|
|
def seed(self, value):
|
|
|
|
|
if not isinstance(value, int):
|
|
|
|
|
raise TypeError("'value' must be int type.")
|
|
|
|
|
self._seed = value
|
|
|
|
|
|
|
|
|
|
def _initialize(self, *kwargs):
|
|
|
|
@ -367,9 +364,9 @@ class Normal(Initializer):
|
|
|
|
|
self.sigma = sigma
|
|
|
|
|
|
|
|
|
|
def _initialize(self, arr):
|
|
|
|
|
seed = self.seed
|
|
|
|
|
seed, seed2 = self.seed
|
|
|
|
|
output_tensor = Tensor(np.zeros(arr.shape, dtype=np.float32))
|
|
|
|
|
random_normal(0, self.sigma, arr.shape, seed, output_tensor)
|
|
|
|
|
random_normal(0, self.sigma, arr.shape, seed, seed2, output_tensor)
|
|
|
|
|
output_data = output_tensor.asnumpy()
|
|
|
|
|
output_data *= self.sigma
|
|
|
|
|
_assignment(arr, output_data)
|
|
|
|
|