Documentation

Welcome to the developer documentation for SigOpt. If you have a question you can’t answer, feel free to contact us!
Welcome to the new SigOpt docs! If you're looking for the classic SigOpt documentation then you can find that here. Otherwise, happy optimizing!

Define and Set Up Metric Space

Similar to defining the hyperparameter space, you need to define the metric space to run a SigOpt Experiment.

The entire metric space is defined as a list of objects, where each object represents a metric.

Each metric is given a name, an objective and a strategy. Metrics with a strategy of constraint are given a threshold. Metrics with a strategy of optimize can optionally be assigned a threshold.

Name

The metric name is a string used to keep track of the different metrics in the experiment.

Objective

The objective is a flag that specifies if a metric is intended to be minimized or maximized by either setting minimize or maximize.

dict(
  name="name",
  objective="minimize",
  strategy="store"
)

dict(
  name="name",
  objective="maximize",
  strategy="store"
)

Strategy

SigOpt allows three different types of metrics: stored, optimized and constrained. They are invoked by calling store, optimize, and constraint respectively.

Store metrics are for tracking purposes. SigOpt can handle up to 50 stored metrics per training run or experiment.

dict(
  name="name",
  objective="maximize",
  strategy="store"
)

Optimize metrics are for finding a minimum or a maximum value. SigOpt handles up to two optimized metrics - for more information visit multimetric optimization.

Each optimized metric has the ability to specify a threshold which is a floating point number representing a threshold for success - for more information visit metric threshold.

dict(
  name="name",
  objective="minimize",
  strategy="optimize"
)

dict(
  name="name",
  objective="minimize",
  threshold=100,
  strategy="optimize"
)

Constraint metrics are for defining success thresholds without the need to find a minimum or maximum value. SigOpt handles up to four constraints - for more information visit metric constraints. The constraint is specified as a threshold which is a floating point number representing a threshold for success.

dict(
  name="name",
  objective="minimize",
  threshold=100,
  strategy="constraint"
)

Metric Failures

SigOpt has the ability to handle and track Failures.

Cases we recommend marking as Failures:

  • Evaluating a metric was not possible because of SigOpt provided parameter assignments themselves
  • Certain parameter configurations led to out-of-memory error or run-time errors
  • The parameter assignments were infeasible/not of interest. If you know these regions prior to running the Experiment, we recommend adding these as constraints.

If model training abruptly stops because a machine randomly fails, we recommend deleting that Run instead of marking it as failed.

sigopt.log_failure()