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
|
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
|
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
|
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
|
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
|
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. |