The-Hyperactive-Software-Stack


Shared data-structures

The hyperactive software stack builds upon some shared data-structures to reliably communicate between packages:

  • objective-function

    • A function that returns a single score or a tuple of a score and a dictionary. Its only argument is a dictionary in Gradient-Free-Optimizers and a more complex object that behaves like a dictionary in Hyperactive. This argument is often called opt, para or access in examples.

    # Hyperactive objective function
    def parabola_function(access):
        score = -(access["x"] * access["x"] + access["y"] * access["y"])
        return score
  • search-space

    • A dictionary with the names of the dimensions as keys and the content of the dimensions as values. In Gradient-Free-Optimizers the values are numpy arrays and Hyperactive they are lists.

    # Hyperactive search space
    search_space = {
        "x": list(np.arange(-10, 10, 0.01)),
        "y": list(np.arange(-10, 10, 0.01)),
    }
  • search-data

    • The search-data always consists of the score and at least one parameter as columns and has as much rows as iterations performed during the optmization run.

    score x y
    0.756 0.1 0.2
    0.823 0.3 0.1
    ... ... ...
    ... ... ...

The official Hyperactive software stack