Beispiel #1
0
    def test_suggest_in_finite_cardinality(self):
        """Test that suggest None when search space is empty"""
        space = Space()
        space.register(Integer("yolo1", "uniform", 0, 5))
        space.register(Fidelity("epoch", 1, 9, 3))

        asha = ASHA(space)
        for i in range(6):
            force_observe(
                asha,
                create_trial(
                    (1, i),
                    names=("epoch", "yolo1"),
                    types=("fidelity", "integer"),
                    results={"objective": i},
                ),
            )

        for i in range(2):
            force_observe(
                asha,
                create_trial(
                    (3, i),
                    names=("epoch", "yolo1"),
                    types=("fidelity", "integer"),
                    results={"objective": i},
                ),
            )

        assert asha.suggest(1) == []
Beispiel #2
0
def rung_4(space1: Space):
    """Create duplicated fake points and objectives for rung 4."""
    points = np.linspace(1, 4, 4)
    keys = list(space1.keys())
    types = [dim.type for dim in space1.values()]

    results: dict[str, tuple[float, Trial]] = {}
    for point in points:
        trial = create_trial(
            (1, point // 2, point // 2),
            names=keys,
            results={"objective": point},
            types=types,
        )

        trial_hash = trial.compute_trial_hash(
            trial,
            ignore_fidelity=True,
            ignore_experiment=True,
        )
        assert trial.objective is not None
        results[trial_hash] = (trial.objective.value, trial)

    return RungDict(
        n_trials=4,
        resources=1,
        results=results,
    )
Beispiel #3
0
def create_trial_for_hb(point, objective=None):
    return create_trial(
        point,
        names=("epoch", "lr"),
        results={"objective": objective},
        types=("fidelity", "real"),
    )
Beispiel #4
0
def rung_3(space1):
    """Create fake points and objectives for rung 3."""
    points = np.linspace(1, 4, 4)
    keys = list(space1.keys())
    types = [dim.type for dim in space1.values()]

    results = {}
    for point in points:
        trial = create_trial(
            (np.power(2, (point - 1)), 1.0 / point, 1.0 / (point * point)),
            names=keys,
            results={"objective": point},
            types=types,
        )
        trial_hash = trial.compute_trial_hash(
            trial,
            ignore_fidelity=True,
            ignore_experiment=True,
        )
        results[trial_hash] = (trial.objective.value, trial)

    return dict(
        n_trials=4,
        resources=1,
        results=results,
    )
Beispiel #5
0
def create_trial_for_hb(point: Sequence[Any],
                        objective: float | None = None) -> Trial:
    return create_trial(
        point,
        names=("epoch", "lr"),
        results={"objective": objective},
        types=("fidelity", "real"),
    )
Beispiel #6
0
    def test_suggest_in_finite_cardinality(self):
        """Test that suggest None when search space is empty"""
        space = Space()
        space.register(Integer("yolo1", "uniform", 0, 5))
        space.register(Fidelity("epoch", 1, 9, 3))

        hyperband = Hyperband(space, repetitions=1)
        for i in range(6):
            force_observe(
                hyperband,
                create_trial(
                    (1, i),
                    names=("epoch", "yolo1"),
                    types=("fidelity", "integer"),
                    results={"objective": i},
                ),
            )

        assert hyperband.suggest(100) == []