autodl-projects/lib/datasets/synthetic_example.py

73 lines
2.1 KiB
Python
Raw Normal View History

2021-04-22 19:09:51 +02:00
#####################################################
# Copyright (c) Xuanyi Dong [GitHub D-X-Y], 2021.04 #
#####################################################
2021-04-27 14:09:37 +02:00
import copy
2021-04-22 19:09:51 +02:00
2021-05-09 12:37:37 +02:00
from .math_dynamic_funcs import DynamicLinearFunc, DynamicQuadraticFunc
2021-04-26 14:16:38 +02:00
from .math_adv_funcs import ConstantFunc, ComposedSinFunc
2021-04-22 19:09:51 +02:00
from .synthetic_env import SyntheticDEnv
2021-05-09 12:37:37 +02:00
def create_example(timestamp_config=None, num_per_task=5000, indicator="v1"):
if indicator == "v1":
return create_example_v1(timestamp_config, num_per_task)
elif indicator == "v2":
return create_example_v2(timestamp_config, num_per_task)
else:
raise ValueError("Unkonwn indicator: {:}".format(indicator))
2021-04-26 15:16:08 +02:00
def create_example_v1(
2021-04-26 15:44:03 +02:00
timestamp_config=None,
2021-04-26 15:16:08 +02:00
num_per_task=5000,
):
2021-04-26 14:16:38 +02:00
mean_generator = ComposedSinFunc()
std_generator = ComposedSinFunc(min_amplitude=0.5, max_amplitude=0.5)
2021-04-22 19:09:51 +02:00
dynamic_env = SyntheticDEnv(
2021-04-26 14:16:38 +02:00
[mean_generator],
[[std_generator]],
num_per_task=num_per_task,
2021-04-26 15:16:08 +02:00
timestamp_config=timestamp_config,
2021-04-22 19:09:51 +02:00
)
2021-04-26 14:16:38 +02:00
2021-04-22 19:09:51 +02:00
function = DynamicQuadraticFunc()
function_param = dict()
2021-04-26 14:16:38 +02:00
function_param[0] = ComposedSinFunc(
num_sin_phase=4, phase_shift=1.0, max_amplitude=1.0
2021-04-22 19:09:51 +02:00
)
2021-04-26 14:16:38 +02:00
function_param[1] = ConstantFunc(constant=0.9)
function_param[2] = ComposedSinFunc(
num_sin_phase=5, phase_shift=0.4, max_amplitude=0.9
2021-04-22 19:09:51 +02:00
)
function.set(function_param)
2021-04-27 14:09:37 +02:00
dynamic_env.set_oracle_map(copy.deepcopy(function))
2021-04-22 19:09:51 +02:00
return dynamic_env, function
2021-05-09 12:37:37 +02:00
def create_example_v2(
timestamp_config=None,
num_per_task=5000,
):
mean_generator = ConstantFunc(0)
std_generator = ConstantFunc(1)
dynamic_env = SyntheticDEnv(
[mean_generator],
[[std_generator]],
num_per_task=num_per_task,
timestamp_config=timestamp_config,
)
function = DynamicLinearFunc()
function_param = dict()
function_param[0] = ComposedSinFunc(
amplitude_scale=ConstantFunc(1.0), period_phase_shift=ConstantFunc(1.0)
)
function_param[1] = ConstantFunc(constant=0.9)
function.set(function_param)
dynamic_env.set_oracle_map(copy.deepcopy(function))
return dynamic_env, function