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.
Python
YAML
dict(
name="name",
objective="minimize",
strategy="store"
)
metrics:
- name: name
objective: minimize
strategy: store
Python
YAML
dict(
name="name",
objective="maximize",
strategy="store"
)
metrics:
- 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.
Python
YAML
dict(
name="name",
objective="maximize",
strategy="store"
)
metrics:
- 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.
Python
YAML
dict(
name="name",
objective="minimize",
strategy="optimize"
)
metrics:
- name: name
objective: minimize
strategy: optimize
Python
YAML
dict(
name="name",
objective="minimize",
threshold=100,
strategy="optimize"
)
metrics:
- 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.
Python
YAML
dict(
name="name",
objective="minimize",
threshold=100,
strategy="constraint"
)
metrics:
- 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()