Re-organize GeMOSA

This commit is contained in:
D-X-Y
2021-05-27 15:56:08 +08:00
parent 6da60664f5
commit 4ca38ad2ff
6 changed files with 26 additions and 19 deletions

View File

@@ -40,6 +40,9 @@ class MathFunc(abc.ABC):
def reset_xstr(self, xstr):
self._xstr = str(xstr)
def output_shape(self, input_shape):
return input_shape
@abc.abstractmethod
def __call__(self, x):
raise NotImplementedError

View File

@@ -47,6 +47,9 @@ class GaussianDGenerator(DynamicGenerator):
def ndim(self):
return self._ndim
def output_shape(self):
return (self._ndim,)
def __call__(self, time, num):
mean_list = [functor(time) for functor in self._mean_functors]
cov_matrix = [

View File

@@ -33,7 +33,7 @@ def get_synthetic_env(total_timestamp=1600, num_per_task=1000, mode=None, versio
}
)
dynamic_env = SyntheticDEnv(
data_generator, oracle_map, time_generator, num_per_task
data_generator, oracle_map, time_generator, num_per_task, noise=0.1
)
dynamic_env.set_regression()
elif version.lower() == "v2":
@@ -53,7 +53,7 @@ def get_synthetic_env(total_timestamp=1600, num_per_task=1000, mode=None, versio
}
)
dynamic_env = SyntheticDEnv(
data_generator, oracle_map, time_generator, num_per_task
data_generator, oracle_map, time_generator, num_per_task, noise=0.1
)
dynamic_env.set_regression()
elif version.lower() == "v3":
@@ -73,7 +73,7 @@ def get_synthetic_env(total_timestamp=1600, num_per_task=1000, mode=None, versio
}
)
dynamic_env = SyntheticDEnv(
data_generator, oracle_map, time_generator, num_per_task
data_generator, oracle_map, time_generator, num_per_task, noise=0.05
)
dynamic_env.set_regression()
elif version.lower() == "v4":

View File

@@ -1,3 +1,4 @@
import numpy as np
import torch
import torch.utils.data as data
@@ -44,10 +45,16 @@ class SyntheticDEnv(data.Dataset):
def set_regression(self):
self._meta_info["task"] = "regression"
self._meta_info["input_dim"] = self._data_generator.ndim
self._meta_info["output_shape"] = self._oracle_map.output_shape(self._data_generator.output_shape())
self._meta_info['output_dim'] = int(np.prod(self._meta_info["output_shape"]))
def set_classification(self, num_classes):
self._meta_info["task"] = "classification"
self._meta_info["input_dim"] = self._data_generator.ndim
self._meta_info["num_classes"] = int(num_classes)
self._meta_info["output_shape"] = self._oracle_map.output_shape(self._data_generator.output_shape())
self._meta_info['output_dim'] = int(np.prod(self._meta_info["output_shape"]))
@property
def oracle_map(self):