Freigeben über


hyperdrive Paket

Enthält Module und Klassen, die die Hyperparameteroptimierung unterstützen.

Hyperparameter sind anpassbare Parameter, die Sie für das Modelltraining auswählen und die den Trainingsprozess steuern. Mit dem Hyperdrive-Paket können Sie die Auswahl dieser Parameter automatisieren. Beispielsweise können Sie den Parametersuchbereich als diskret oder fortlaufend und eine Samplingmethode für den Suchbereich als zufällig, rasterbasiert oder bayessch definieren. Außerdem können Sie eine primäre Metrik angeben, die im Experiment zur Hyperparameteroptimierung verwendet werden soll, und ob diese Metrik minimiert oder maximiert werden soll. Sie können auch Richtlinien für die vorzeitige Beendigung definieren, mit der Experimentausführungen mit schlechter Leistung abgebrochen und neu gestartet werden. Um einen wiederverwendbaren Machine Learning-Workflow für HyperDrive zu definieren, erstellen Sie mit hyper_drive_step eine Pipeline.

Module

error_definition

Fehlercodedefinitionen für das HyperDrive SDK.

error_strings

Eine Auflistung von Fehlerzeichenfolgen, die im gesamten HyperDrive SDK verwendet werden.

exceptions

Von „HyperDrive“ ausgelöste Ausnahmen.

parameter_expressions

Definiert Funktionen, die in „HyperDrive“ verwendet werden können, um einen Hyperparametersuchbereich zu beschreiben.

Diese Funktionen werden verwendet, um verschiedene Typen von Hyperparameterverteilungen anzugeben. Die Verteilungen werden definiert, wenn Sie die Stichprobenentnahme für einen Hyperparametersweep konfigurieren. Wenn Sie beispielsweise die RandomParameterSampling-Klasse verwenden, können Sie eine Stichprobe aus einer Gruppe diskreter Werte oder einer Verteilung kontinuierlicher Werte auswählen. In diesem Fall können Sie mit der choice-Funktion diskrete Werte und mit der uniform-Funktion eine Verteilung kontinuierlicher Werte generieren.

Beispiele für die Verwendung dieser Funktionen finden Sie im Tutorial unter https://docs.microsoft.com/azure/machine-learning/how-to-tune-hyperparameters.

Klassen

BanditPolicy

Definiert eine Richtlinie für die vorzeitige Beendigung basierend auf Slackkriterien sowie ein Häufigkeits- und Verzögerungsintervall für die Auswertung.

Initialisieren Sie eine BanditPolicy mit Slack-Faktor, slack_amount und Auswertungsintervall.

BayesianParameterSampling

Definiert eine bayessche Stichprobenentnahme über einen Suchbereich für Hyperparameter.

Bei der bayesschen Stichprobenentnahme wird versucht, die nächste Stichprobe von Hyperparametern basierend auf der Leistung der vorherigen Stichproben intelligent auszuwählen, sodass die neue Stichprobe die gemeldete primäre Metrik verbessert.

Initialisieren Sie BayesianParameterSampling.

EarlyTerminationPolicy

Abstrakte Basisklasse für alle Richtlinien zur vorzeitigen Beendigung.

Initialisieren Sie eine Richtlinie für eine vorzeitige Beendigung.

GridParameterSampling

Definiert die rasterbasierte Stichprobenentnahme über einen Suchbereich für Hyperparameter

Initialisieren Sie GridParameterSampling.

HyperDriveConfig

Konfiguration, die eine HyperDrive-Ausführung definiert.

Die HyperDrive-Konfiguration enthält Informationen zur Stichprobenentnahme für den Hyperparameterbereich, zur Beendigungsrichtlinie, zur primären Metrik, zum Fortsetzen anhand der Konfiguration, zum Schätzer und zum Computeziel für die Ausführung des Experiments.

Initialisieren Sie hyperDriveConfig.

HyperDriveRun

„HyperDriveRun“ enthält die Details eines übermittelten HyperDrive-Experiments.

Diese Klasse kann zum Verwalten, Überprüfen des Status und Abrufen von Ausführungsdetails für die HyperDrive-Ausführung und jede der generierten untergeordneten Ausführungen verwendet werden.

Initialisieren Sie eine HyperDrive-Ausführung.

HyperDriveRunConfig

Konfiguration, die eine HyperDrive-Ausführung definiert.

Die Konfiguration enthält Informationen zur Stichprobenentnahme für den Parameterbereich, zur Beendigungsrichtlinie, der primären Metrik, zum Schätzer und zum Computeziel für die Ausführung des Experiments.

Initialisieren Sie hyperDriveConfig.

HyperParameterSampling

Abstrakte Basisklasse für alle Algorithmen für die Stichprobenentnahme für Hyperparameter.

Diese Klasse kapselt den Hyperparameterbereich, die Methode für die Stichprobenentnahme und zusätzliche Eigenschaften für die abgeleiteten Klassen BayesianParameterSampling, GridParameterSampling und RandomParameterSampling für die Stichprobenentnahme.

Initialisieren Sie HyperParameterSampling.

MedianStoppingPolicy

Definiert eine Richtlinie für die vorzeitige Beendigung basierend auf dem Durchschnitt der Ausführung der primären Metrik aller Ausführungen.

Initialisieren Sie eine MedianStoppingPolicy.

NoTerminationPolicy

Gibt an, dass keine Richtlinie für die vorzeitige Beendigung angewendet wird.

Jede Ausführung wird bis zum Abschluss ausgeführt.

Initialisieren Sie NoTerminationPolicy.

RandomParameterSampling

Definiert die zufällige Stichprobenentnahme über einen Suchbereich für Hyperparameter.

Initialisieren Sie RandomParameterSampling.

TruncationSelectionPolicy

Definiert eine Richtlinie für die vorzeitige Beendigung, die einen bestimmten Prozentsatz der Ausführungen in jedem Auswertungsintervall abbricht.

Initialisieren Sie eine TruncationSelectionPolicy.

Enumerationen

PrimaryMetricGoal

Definiert unterstützte Metrikziele für die Hyperparameteroptimierung.

Ein Metrikziel wird verwendet, um zu bestimmen, ob ein höherer Wert für eine Metrik besser oder schlechter ist. Metrikziele werden verwendet, wenn Ausführungen basierend auf der primären Metrik verglichen werden. Es kann beispielsweise sein, dass Sie die Genauigkeit maximieren oder Fehler reduzieren müssen.

Name und Ziel der primären Metrik werden in der HyperDriveConfig-Klasse angegeben, wenn Sie eine HyperDrive-Ausführung konfigurieren.

Functions

choice

Gibt diskrete Optionen für die Stichprobenentnahme an.

choice(*options)

Parameter

Name Beschreibung
options
Erforderlich

Liste der Optionen, die Sie auswählen können.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

lognormal

Gibt einen gemäß „exp(normal(mu, sigma))“ ermittelten Wert zurück.

Der Logarithmus des Rückgabewerts wird normalerweise verteilt. Bei der Optimierung ist diese Variable darauf beschränkt, positiv zu sein.

lognormal(mu, sigma)

Parameter

Name Beschreibung
mu
Erforderlich

Der Mittelwert der Normalverteilung.

sigma
Erforderlich

Die Standardabweichung der Normalverteilung.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

loguniform

Gibt eine einheitliche Protokollverteilung an.

Gibt einen gemäß „exp(uniform(min_value, max_value))“ ermittelten Wert zurück, sodass der Logarithmus des Rückgabewerts einheitlich verteilt ist. Bei der Optimierung ist diese Variable auf das Intervall „[exp(min_value), exp(max_value)]“ beschränkt.

loguniform(min_value, max_value)

Parameter

Name Beschreibung
min_value
Erforderlich

Der Mindestwert im Bereich ist „exp(min_value)“ (einschließlich).

max_value
Erforderlich

Der Maximalwert im Bereich ist „exp(max_value)“ (einschließlich).

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

normal

Gibt einen realen Wert an, der mit dem Mittelwert „mu“ und der Standardabweichung „sigma“ normalverteilt ist.

Bei der Optimierung ist dies eine uneingeschränkte Variable.

normal(mu, sigma)

Parameter

Name Beschreibung
mu
Erforderlich

Der Mittelwert der Normalverteilung.

sigma
Erforderlich

Standardabweichung der Normalverteilung.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

qlognormal

Gibt einen Wert wie „round(exp(normal(mu, sigma)) / q) × q“ an.

Eignet sich für eine diskrete Variable in Bezug darauf, ob das Ziel angesichts der Größe der Variable stets problemlos erreicht werden kann, die auf einer Seite begrenzt ist.

qlognormal(mu, sigma, q)

Parameter

Name Beschreibung
mu
Erforderlich

Der Mittelwert der Normalverteilung.

sigma
Erforderlich

Die Standardabweichung der Normalverteilung.

q
Erforderlich
int

Der Glättungsfaktor.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

qloguniform

Gibt eine einheitliche Verteilung in Form von „round(exp(uniform(min_value, max_value) / q) × q“ an.

Dies eignet sich für eine diskrete Variable in Bezug darauf, ob das Ziel angesichts der Größe des Werts stets problemlos erreicht werden kann, der sowohl nach oben als auch nach unten begrenzt sein sollte.

qloguniform(min_value, max_value, q)

Parameter

Name Beschreibung
min_value
Erforderlich

Der Mindestwert im Bereich (einschließlich).

max_value
Erforderlich

Der Höchstwert im Bereich (einschließlich).

q
Erforderlich
int

Der Glättungsfaktor.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

qnormal

Gibt einen Wert wie „round(normal(mu, sigma) / q) × q“ an.

Eignet sich für eine diskrete Variable, die wahrscheinlich einen Wert um „mu“ annimmt, aber grundsätzlich unbegrenzt ist.

qnormal(mu, sigma, q)

Parameter

Name Beschreibung
mu
Erforderlich

Der Mittelwert der Normalverteilung.

sigma
Erforderlich

Die Standardabweichung der Normalverteilung.

q
Erforderlich
int

Der Glättungsfaktor.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

quniform

Gibt eine einheitliche Verteilung in Form von „round(uniform(min_value, max_value) / q) × q“ an.

Dies eignet sich für einen diskreten Wert in Bezug darauf, ob das Ziel stets problemlos erreicht werden kann, das sowohl nach oben als auch nach unten begrenzt sein sollte.

quniform(min_value, max_value, q)

Parameter

Name Beschreibung
min_value
Erforderlich

Der Mindestwert im Bereich (einschließlich).

max_value
Erforderlich

Der Höchstwert im Bereich (einschließlich).

q
Erforderlich
int

Der Glättungsfaktor.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

randint

Gibt eine Gruppe zufälliger ganzer Zahlen im Bereich [0, upper) an.

Die Semantik dieser Verteilung besteht darin, dass im Vergleich zu entfernteren ganzzahligen Werten in der Verlustfunktion keine Korrelation mehr zwischen ganzzahligen Werten im Nahbereich besteht. Diese Verteilung ist beispielsweise für das Beschreiben zufälliger Seeds geeignet. Wenn die Verlustfunktion eher mit ganzzahligen Werten im Nahbereich korreliert ist, sollten Sie wahrscheinlich eine der „quantisierten“ kontinuierlichen Verteilungen verwenden (z. B. „quniform“, „qloguniform“, „qnormal“ oder „qlognormal“).

randint(upper)

Parameter

Name Beschreibung
upper
Erforderlich
int

Die exklusive Obergrenze für den Bereich ganzer Zahlen.

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.

uniform

Gibt eine einheitliche Verteilung an, welche Stichproben verwendet werden.

uniform(min_value, max_value)

Parameter

Name Beschreibung
min_value
Erforderlich

Der Mindestwert im Bereich (einschließlich).

max_value
Erforderlich

Der Höchstwert im Bereich (einschließlich).

Gibt zurück

Typ Beschreibung

Der stochastische Ausdruck.