Add int search space

This commit is contained in:
D-X-Y
2021-03-18 16:02:55 +08:00
parent ece6ac5f41
commit 63c8bb9bc8
67 changed files with 5150 additions and 1474 deletions

View File

@@ -6,5 +6,6 @@
from .basic_space import Categorical
from .basic_space import Continuous
from .basic_space import Integer
from .basic_op import has_categorical
from .basic_op import has_continuous

View File

@@ -92,6 +92,32 @@ class Categorical(Space):
return sample
class Integer(Categorical):
"""A space contains the integer values."""
def __init__(self, lower: int, upper: int, default: Optional[int] = None):
if not isinstance(lower, int) or not isinstance(upper, int):
raise ValueError(
"The lower [{:}] and uppwer [{:}] must be int.".format(lower, upper)
)
data = list(range(lower, upper + 1))
self._raw_lower = lower
self._raw_upper = upper
self._raw_default = default
if default is not None and (default < lower or default > upper):
raise ValueError("The default value [{:}] is out of range.".format(default))
default = data.index(default)
super(Integer, self).__init__(*data, default=default)
def __repr__(self):
return "{name:}(lower={lower:}, upper={upper:}, default={default:})".format(
name=self.__class__.__name__,
lower=self._raw_lower,
upper=self._raw_upper,
default=self._raw_default,
)
np_float_types = (np.float16, np.float32, np.float64)
np_int_types = (
np.uint8,