Skip to content

Releases: gdikov/hypertunity

Release 1.0.1

26 Jan 23:01
Compare
Choose a tag to compare

Changed

  • some code style related changes are applied, such as import sorting and line length shortening.
  • refactoring in tests to use pytest parameterisation and fixtures.

Fixed

  • issue with running callables from script thanks to David Turner (#43).
  • issue with tensorflow version comparison in the tensorboard reporter.

Release 1.0.0

10 Nov 19:12
Compare
Choose a tag to compare

Added

  • Reporter instance can be loaded with data from the database of another reporter using a from_database() method.
  • data from a Reporter instance can be exported into a HistoryPoint list to load into an optimiser.
  • compiled documentation and logo.
  • BayesianOptimisation raises ExhaustedSearchSpaceError if a discrete domain is exhausted.

Changed

  • minor fixes in documentation typos, argument names and tests.
  • Domain is moved from hypertunity.optimisation to the hypertunity package.
  • rename TableReporter to Table and TensorboardReporter to Tensorboard.
  • ExhaustedSearchSpaceError is moved from optimisation.exhastive to optimisation.base module.
  • Trial running a task from a job is now done with dict as input keyword arguments or named command line arguments.

Fixed

  • bug in BayesianOptimisation sample conversion for nested dictionaries.
  • bug in BayesianOptimisation type preserving between the domain and the sample value.
  • bug in Tensorboard reporter for real intervals with integer boundaries.
  • bug in Reporter for not using the default metric name during logging.

Release 0.4.0

15 Sep 12:53
Compare
Choose a tag to compare

Added

  • Trial a wrapper class for high-level usage, which runs the optimiser, evaluates the objective
    by scheduling jobs, updates the optimiser and summarises the results.
  • a Job from a script with command line arguments can now be run with
    named arguments passed as a dictionary instead of a tuple.
  • checkpointing of results on disk when calling log() or a Reporter object.
  • optimisation history can now be loaded into an Optimiser. Example use-case would be to warm-start
    BayesianOptimisation from the history of the quicker RandomSearch.

Changed

  • every Reporter instance has a primary_metric attribute, which is an argument to __init__.

Fixed

  • validation of Domain is not allowing for intervals with more than 2 numbers.
  • minor bugs in tests.

Release 0.3.1

09 Sep 22:51
e3adea2
Compare
Choose a tag to compare

Fixed:

  • Optimiser.update() now accepts evaluation arguments that are float, EvaluationScore or a dict
    with metric names and floats or EvaluationScores. This is valid for all optimisers.

Release 0.3.0

08 Sep 08:27
Compare
Choose a tag to compare

Added

  • Job can now be scheduled locally to run command line scripts with arguments.
  • BayesianOptimisation.run_step can pass arguments to the backend for better customisation.

Changed

  • any Reporter object can be fed with data from a tuple of a
    Sample object and a score, which can be a float or an EvaluationScore.
  • BayesianOptimisation optimiser can be updated with a Sample and
    a float or EvaluationScore objective evaluation types.
  • a discrete/categorical Domain is defined with a set literal instead of a tuple.
  • Job supports running functions from within a script by specifying 'script_path::func_name'.
  • batch_size is no more an attribute of an Optimiser but an argument to run_step.
  • minimise is no more an attribute of BayesianOptimisation but an argument to run_step.

Release 0.2.0

27 Aug 22:20
Compare
Choose a tag to compare

Features

  • Scheduler to run jobs locally using joblib.
  • SlurmJob and Job dataclasses defining the tasks to be scheduled.
  • Result dataclass encapsulating the results from the tasks.
  • TableReporter class for reporting results in tabular format.
  • Reporter base class for extending reporters.

Changed

  • Base-prefix is removed from all base classes which reside
    in base.py modules.
  • split_by_type is now a method of the Domain class.
  • Optimiser has a batch_size attribute accessible as a property.

Removed

  • optimisation.bo package has been removed. Instead a single bo.py
    module supports the only BO backend---GPyOpt, as of now.
  • prefix for the file encoding (default is utf-8).

Release 0.1.0

27 Jul 09:20
d4784d7
Compare
Choose a tag to compare

Features

  • Support for discrete, continuous and categorical variables
  • Bayesian Optimisation using GP regression, powered by GPyOpt
  • Native support for random search
  • Native support for grid search
  • Tensorboard HParams visualisation