Source code for ax.benchmark.problems.hd_embedding
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
from dataclasses import asdict
from ax.benchmark.benchmark_problem import BenchmarkProblem
from ax.core.parameter import ParameterType, RangeParameter
from ax.core.search_space import SearchSpace
[docs]def embed_higher_dimension(
problem: BenchmarkProblem, total_dimensionality: int
) -> BenchmarkProblem:
num_dummy_dimensions = total_dimensionality - len(problem.search_space.parameters)
search_space = SearchSpace(
parameters=[
*problem.search_space.parameters.values(),
*[
RangeParameter(
name=f"embedding_dummy_{i}",
parameter_type=ParameterType.FLOAT,
lower=0,
upper=1,
)
for i in range(num_dummy_dimensions)
],
],
parameter_constraints=problem.search_space.parameter_constraints,
)
problem_kwargs = asdict(problem)
problem_kwargs["name"] = f"{problem_kwargs['name']}_{total_dimensionality}d"
problem_kwargs["search_space"] = search_space
return problem.__class__(**problem_kwargs)