Update GeMOSA v4

This commit is contained in:
D-X-Y
2021-05-27 17:30:44 +08:00
parent 1ce0b80776
commit b6e11c6360
8 changed files with 147 additions and 39 deletions

View File

@@ -20,6 +20,37 @@ class DynamicGenerator(abc.ABC):
raise NotImplementedError
class UniformDGenerator(DynamicGenerator):
"""Generate data from the uniform distribution."""
def __init__(self, l_functors, r_functors):
super(UniformDGenerator, self).__init__()
self._ndim = assert_list_tuple(l_functors)
assert self._ndim == assert_list_tuple(r_functors)
self._l_functors = l_functors
self._r_functors = r_functors
@property
def ndim(self):
return self._ndim
def output_shape(self):
return (self._ndim,)
def __call__(self, time, num):
l_list = [functor(time) for functor in self._l_functors]
r_list = [functor(time) for functor in self._r_functors]
values = []
for l, r in zip(l_list, r_list):
values.append(np.random.uniform(low=l, high=r, size=num))
return np.stack(values, axis=-1)
def __repr__(self):
return "{name}({ndim} dims)".format(
name=self.__class__.__name__, ndim=self._ndim
)
class GaussianDGenerator(DynamicGenerator):
"""Generate data from Gaussian distribution."""