Delen via


Hyperparameter afstemmen van een model (v2)

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Automatiseer efficiënte afstemming van hyperparameters met behulp van Azure Machine Learning SDK v2 en CLI v2 via het type SweepJob.

  1. Definieer de zoekruimte voor de parameter voor uw proefabonnement
  2. Geef het sampling-algoritme voor uw sweep-taak op
  3. Het doel opgeven dat moet worden geoptimaliseerd
  4. Beleid voor vroegtijdige beëindiging opgeven voor slecht presterende taken
  5. Limieten definiëren voor de sweep-taak
  6. Een experiment starten met de gedefinieerde configuratie
  7. De trainingstaken visualiseren
  8. Selecteer de beste configuratie voor uw model

Wat is hyperparameterafstemming?

Hyperparameters zijn aanpasbare parameters waarmee u het modeltrainingsproces kunt beheren. Met neurale netwerken bepaalt u bijvoorbeeld het aantal verborgen lagen en het aantal knooppunten in elke laag. Modelprestaties zijn sterk afhankelijk van hyperparameters.

Hyperparameterafstemming, ook wel hyperparameteroptimalisatie genoemd, is het proces van het vinden van de configuratie van hyperparameters die de beste prestaties opleveren. Het proces is doorgaans kostbaar en handmatig.

Met Azure Machine Learning kunt u hyperparameterafstemming automatiseren en experimenten parallel uitvoeren om hyperparameters efficiënt te optimaliseren.

De zoekruimte definiëren

Hyperparameters afstemmen door het bereik van waarden te verkennen dat is gedefinieerd voor elke hyperparameter.

Hyperparameters kunnen discreet of doorlopend zijn en hebben een verdeling van waarden die worden beschreven door een parameterexpressie.

Discrete hyperparameters

Discrete hyperparameters worden opgegeven als een tussen Choice discrete waarden. Choice kan het volgende zijn:

  • een of meer door komma's gescheiden waarden
  • een range object
  • list willekeurig object
from azure.ai.ml.sweep import Choice

command_job_for_sweep = command_job(
    batch_size=Choice(values=[16, 32, 64, 128]),
    number_of_hidden_layers=Choice(values=range(1,5)),
)

In dit geval batch_size gebruikt een van de waarden [16, 32, 64, 128] en number_of_hidden_layers een van de waarden [1, 2, 3, 4].

De volgende geavanceerde discrete hyperparameters kunnen ook worden opgegeven met behulp van een distributie:

  • QUniform(min_value, max_value, q) - Retourneert een waarde zoals round(Uniform(min_value, max_value) / q) * q
  • QLogUniform(min_value, max_value, q) - Retourneert een waarde zoals round(exp(Uniform(min_value, max_value)) / q) * q) *
  • QNormal(mu, sigma, q) - Retourneert een waarde zoals round(Normal(mu, sigma) / q) * q
  • QLogNormal(mu, sigma, q) - Retourneert een waarde zoals round(exp(Normal(mu, sigma)) / q) * q

Continue hyperparameters

De continue hyperparameters worden opgegeven als een verdeling over een doorlopend bereik van waarden:

  • Uniform(min_value, max_value) - Retourneert een uniform verdeelde waarde tussen min_value en max_value
  • LogUniform(min_value, max_value) - Retourneert een waarde die is getekend op basis van exp(Uniform(min_value, max_value)) zodat de logaritme van de retourwaarde uniform wordt verdeeld
  • Normal(mu, sigma) - Retourneert een echte waarde die normaal wordt verdeeld met gemiddelde mu en standaarddeviatie sigma
  • LogNormal(mu, sigma) - Retourneert een waarde die is getekend op basis van exp(normal(mu, sigma)) zodat de logaritme van de geretourneerde waarde normaal wordt verdeeld

Een voorbeeld van een parameterruimtedefinitie:

from azure.ai.ml.sweep import Normal, Uniform

command_job_for_sweep = command_job(   
    learning_rate=Normal(mu=10, sigma=3),
    keep_probability=Uniform(min_value=0.05, max_value=0.1),
)

Deze code definieert een zoekruimte met twee parameters en learning_rate keep_probability. learning_rate heeft een normale verdeling met gemiddelde waarde 10 en een standaarddeviatie van 3. keep_probability heeft een uniforme verdeling met een minimumwaarde van 0,05 en een maximumwaarde van 0,1.

Voor de CLI kunt u het YAML-schema voor opruimen gebruiken om de zoekruimte in uw YAML te definiëren:

    search_space:
        conv_size:
            type: choice
            values: [2, 5, 7]
        dropout_rate:
            type: uniform
            min_value: 0.1
            max_value: 0.2

Steekproeven nemen in de hyperparameterruimte

Geef de parametersamplingsmethode op die moet worden gebruikt voor de hyperparameterruimte. Azure Machine Learning ondersteunt de volgende methoden:

  • Willekeurige steekproeven
  • Rastersampling
  • Bayesiaanse steekproeven

Willekeurige steekproeven

Willekeurige steekproeven ondersteunen discrete en continue hyperparameters. Het ondersteunt vroegtijdige beëindiging van taken met lage prestaties. Sommige gebruikers voeren een eerste zoekopdracht uit met willekeurige steekproeven en verfijnen vervolgens de zoekruimte om de resultaten te verbeteren.

Bij willekeurige steekproeven worden hyperparameterwaarden willekeurig geselecteerd uit de gedefinieerde zoekruimte. Nadat u de opdrachttaak hebt gemaakt, kunt u de parameter opruimen gebruiken om het sampling-algoritme te definiëren.

from azure.ai.ml.sweep import Normal, Uniform, RandomParameterSampling

command_job_for_sweep = command_job(   
    learning_rate=Normal(mu=10, sigma=3),
    keep_probability=Uniform(min_value=0.05, max_value=0.1),
    batch_size=Choice(values=[16, 32, 64, 128]),
)

sweep_job = command_job_for_sweep.sweep(
    compute="cpu-cluster",
    sampling_algorithm = "random",
    ...
)

Sobol

Sobol is een soort willekeurige steekproeven die worden ondersteund door sweep-taaktypen. U kunt sobol gebruiken om uw resultaten te reproduceren met behulp van seed en de verdeling van de zoekruimte gelijkmatiger te behandelen.

Als u sobol wilt gebruiken, gebruikt u de klasse RandomParameterSampling om het zaad en de regel toe te voegen, zoals wordt weergegeven in het onderstaande voorbeeld.

from azure.ai.ml.sweep import RandomParameterSampling

sweep_job = command_job_for_sweep.sweep(
    compute="cpu-cluster",
    sampling_algorithm = RandomParameterSampling(seed=123, rule="sobol"),
    ...
)

Rastersampling

Rastersampling ondersteunt discrete hyperparameters. Gebruik rastersampling als u het budget kunt gebruiken om volledig over de zoekruimte te zoeken. Ondersteunt vroegtijdige beëindiging van taken met lage prestaties.

Rastersampling voert een eenvoudige rasterzoekopdracht uit op alle mogelijke waarden. Rastersampling kan alleen worden gebruikt met choice hyperparameters. De volgende ruimte heeft bijvoorbeeld zes voorbeelden:

from azure.ai.ml.sweep import Choice

command_job_for_sweep = command_job(
    batch_size=Choice(values=[16, 32]),
    number_of_hidden_layers=Choice(values=[1,2,3]),
)

sweep_job = command_job_for_sweep.sweep(
    compute="cpu-cluster",
    sampling_algorithm = "grid",
    ...
)

Bayesiaanse steekproeven

Bayesiaanse steekproeven zijn gebaseerd op het Bayesiaanse optimalisatie-algoritme. Er worden voorbeelden gekozen op basis van de wijze waarop eerdere voorbeelden zijn gedaan, zodat nieuwe voorbeelden de primaire metrische gegevens verbeteren.

Bayesiaanse steekproeven worden aanbevolen als u voldoende budget hebt om de hyperparameterruimte te verkennen. Voor de beste resultaten raden we een maximum aantal taken aan dat groter is dan of gelijk is aan 20 keer het aantal hyperparameters dat wordt afgestemd.

Het aantal gelijktijdige taken heeft invloed op de effectiviteit van het afstemmingsproces. Een kleiner aantal gelijktijdige taken kan leiden tot betere convergentie van steekproeven, omdat de kleinere mate van parallelle uitvoering het aantal taken verhoogt dat profiteert van eerder voltooide taken.

Bayesiaanse steekproeven ondersteunen choicealleen , uniformen quniform distributies over de zoekruimte.

from azure.ai.ml.sweep import Uniform, Choice

command_job_for_sweep = command_job(   
    learning_rate=Uniform(min_value=0.05, max_value=0.1),
    batch_size=Choice(values=[16, 32, 64, 128]),
)

sweep_job = command_job_for_sweep.sweep(
    compute="cpu-cluster",
    sampling_algorithm = "bayesian",
    ...
)

Het doel van de opruimen opgeven

Definieer het doel van uw sweep-taak door de primaire metrische gegevens en het doel op te geven dat u hyperparameterafstemming wilt optimaliseren. Elke trainingstaak wordt geëvalueerd voor de primaire metrische gegevens. Het beleid voor vroegtijdige beëindiging maakt gebruik van de primaire metrische gegevens om taken met lage prestaties te identificeren.

  • primary_metric: De naam van de primaire metrische gegevens moet exact overeenkomen met de naam van de metrische gegevens die zijn vastgelegd door het trainingsscript
  • goal: Dit kan ofwel Maximize of Minimize en bepaalt of de primaire metriek wordt gemaximaliseerd of geminimaliseerd bij het evalueren van de taken.
from azure.ai.ml.sweep import Uniform, Choice

command_job_for_sweep = command_job(   
    learning_rate=Uniform(min_value=0.05, max_value=0.1),
    batch_size=Choice(values=[16, 32, 64, 128]),
)

sweep_job = command_job_for_sweep.sweep(
    compute="cpu-cluster",
    sampling_algorithm = "bayesian",
    primary_metric="accuracy",
    goal="Maximize",
)

In dit voorbeeld wordt de nauwkeurigheid gemaximaliseerd.

Metrische logboekgegevens voor het afstemmen van hyperparameters

Het trainingsscript voor uw model moet de primaire metrische gegevens registreren tijdens de modeltraining met dezelfde bijbehorende metrische naam, zodat de SweepJob toegang heeft tot het afstemmen van hyperparameters.

Registreer de primaire metrische gegevens in uw trainingsscript met het volgende voorbeeldfragment:

import mlflow
mlflow.log_metric("accuracy", float(val_accuracy))

Het trainingsscript berekent het val_accuracy en registreert het als de primaire metrische waarde 'nauwkeurigheid'. Telkens wanneer de metrische waarde wordt geregistreerd, wordt deze ontvangen door de hyperparameterafstemmingsservice. Het is aan u om de frequentie van rapportage te bepalen.

Zie Logboekregistratie inschakelen in Azure Machine Learning-trainingstaken voor meer informatie over logboekregistratiewaarden voor trainingstaken.

Beleid voor vroegtijdige beëindiging opgeven

Automatisch slecht presterende taken beëindigen met een beleid voor vroegtijdige beëindiging. Vroegtijdige beëindiging verbetert de rekenefficiëntie.

U kunt de volgende parameters configureren die bepalen wanneer een beleid wordt toegepast:

  • evaluation_interval: de frequentie van het toepassen van het beleid. Telkens wanneer het trainingsscript de primaire metrische gegevens registreert als één interval. Een evaluation_interval van 1 past het beleid toe telkens wanneer het trainingsscript de primaire metrische gegevens rapporteert. Een evaluation_interval van 2 past het beleid elke keer toe. Als dit niet is opgegeven, evaluation_interval is deze standaard ingesteld op 0.
  • delay_evaluation: vertraagt de eerste beleidsevaluatie voor een opgegeven aantal intervallen. Dit is een optionele parameter die voortijdige beëindiging van trainingstaken voorkomt door alle configuraties gedurende een minimum aantal intervallen uit te voeren. Indien opgegeven, wordt elk veelvoud van evaluation_interval toegepast dat groter is dan of gelijk is aan delay_evaluation. Als dit niet is opgegeven, delay_evaluation is deze standaard ingesteld op 0.

Azure Machine Learning ondersteunt het volgende beleid voor vroegtijdige beëindiging:

Bandit-beleid

Bandit-beleid is gebaseerd op margefactor/margehoeveelheid en evaluatie-interval. Bandit-beleid beëindigt een taak wanneer de primaire metriek zich niet binnen de opgegeven margefactor/slack-hoeveelheid van de meest geslaagde taak bevindt.

Geef de volgende configuratieparameters op:

  • slack_factor of slack_amount: de marge die is toegestaan met betrekking tot de best presterende trainingstaak. slack_factor geeft de toegestane marge op als een verhouding. slack_amount geeft de toegestane marge op als een absolute hoeveelheid, in plaats van een verhouding.

    Denk bijvoorbeeld aan een Bandit-beleid dat is toegepast op interval 10. Stel dat de best presterende taak op interval 10 een primaire metriek heeft gerapporteerd 0,8 is met een doel om de primaire metriek te maximaliseren. Als het beleid een slack_factor van 0,2 opgeeft, worden alle trainingstaken waarvan de beste metrische waarde bij interval 10 kleiner is dan 0,66 (0,8/(1+slack_factor)) beëindigd.

  • evaluation_interval: (optioneel) de frequentie voor het toepassen van het beleid

  • delay_evaluation: (optioneel) vertraagt de eerste beleidsevaluatie voor een opgegeven aantal intervallen

from azure.ai.ml.sweep import BanditPolicy
sweep_job.early_termination = BanditPolicy(slack_factor = 0.1, delay_evaluation = 5, evaluation_interval = 1)

In dit voorbeeld wordt het beleid voor vroegtijdige beëindiging toegepast op elk interval wanneer metrische gegevens worden gerapporteerd, beginnend bij evaluatieinterval 5. Taken waarvan de beste metrische gegevens kleiner zijn dan (1/(1+0,1) of 91% van de best presterende taken worden beëindigd.

Beleid voor het stoppen van mediaan

Mediaan stoppen is een beleid voor vroegtijdige beëindiging op basis van het uitvoeren van gemiddelden van primaire metrische gegevens die door de taken worden gerapporteerd. Met dit beleid worden lopende gemiddelden berekend voor alle trainingstaken en worden taken gestopt waarvan de primaire metrische waarde slechter is dan de mediaan van de gemiddelden.

Dit beleid gebruikt de volgende configuratieparameters:

  • evaluation_interval: de frequentie voor het toepassen van het beleid (optionele parameter).
  • delay_evaluation: vertraagt de eerste beleidsevaluatie voor een opgegeven aantal intervallen (optionele parameter).
from azure.ai.ml.sweep import MedianStoppingPolicy
sweep_job.early_termination = MedianStoppingPolicy(delay_evaluation = 5, evaluation_interval = 1)

In dit voorbeeld wordt het beleid voor vroegtijdige beëindiging toegepast bij elk interval vanaf evaluatieinterval 5. Een taak wordt gestopt met interval 5 als de beste primaire metriek slechter is dan de mediaan van de lopende gemiddelden met intervallen 1:5 voor alle trainingstaken.

Selectiebeleid afkappen

Selectie voor afkappen annuleert een percentage van de laagst presterende taken bij elk evaluatieinterval. Taken worden vergeleken met behulp van de primaire metrische gegevens.

Dit beleid gebruikt de volgende configuratieparameters:

  • truncation_percentage: het percentage van de laagst presterende taken die bij elk evaluatie-interval moeten worden beëindigd. Een geheel getal tussen 1 en 99.
  • evaluation_interval: (optioneel) de frequentie voor het toepassen van het beleid
  • delay_evaluation: (optioneel) vertraagt de eerste beleidsevaluatie voor een opgegeven aantal intervallen
  • exclude_finished_jobs: geeft aan of voltooide taken moeten worden uitgesloten bij het toepassen van het beleid
from azure.ai.ml.sweep import TruncationSelectionPolicy
sweep_job.early_termination = TruncationSelectionPolicy(evaluation_interval=1, truncation_percentage=20, delay_evaluation=5, exclude_finished_jobs=true)

In dit voorbeeld wordt het beleid voor vroegtijdige beëindiging toegepast bij elk interval vanaf evaluatieinterval 5. Een taak wordt beëindigd op interval 5 als de prestaties bij interval 5 de laagste 20% van de prestaties van alle taken met interval 5 hebben en voltooide taken uitsluiten bij het toepassen van het beleid.

Geen beëindigingsbeleid (standaard)

Als er geen beleid is opgegeven, kan de hyperparameter-afstemmingsservice alle trainingstaken uitvoeren tot voltooiing.

sweep_job.early_termination = None

Een beleid voor vroegtijdige beëindiging kiezen

  • Voor een conservatief beleid dat besparingen biedt zonder veelbelovende banen te beëindigen, kunt u een mediaan stoppen beleid overwegen met evaluation_interval 1 en delay_evaluation 5. Dit zijn conservatieve instellingen die ongeveer 25%-35% kunnen besparen zonder verlies van primaire metrische gegevens (op basis van onze evaluatiegegevens).
  • Voor agressievere besparingen gebruikt u Bandit-beleid met een kleinere toegestane marge of selectiebeleid voor afkapping met een groter afkappingspercentage.

Limieten instellen voor uw opruimen

Beheer uw resourcebudget door limieten in te stellen voor uw sweep-taak.

  • max_total_trials: Maximum aantal proeftaken. Moet een geheel getal tussen 1 en 1000 zijn.
  • max_concurrent_trials: (optioneel) Maximum aantal proeftaken dat gelijktijdig kan worden uitgevoerd. Als dit niet is opgegeven, max_total_trials aantal taken parallel worden gestart. Indien opgegeven, moet een geheel getal tussen 1 en 1000 zijn.
  • timeout: Maximale tijd in seconden mag de hele sweep-taak worden uitgevoerd. Zodra deze limiet is bereikt, annuleert het systeem de sweep-taak, inclusief alle proefversies.
  • trial_timeout: De maximale tijd in seconden dat elke proeftaak mag worden uitgevoerd. Zodra deze limiet is bereikt, annuleert het systeem de proefversie.

Notitie

Als zowel max_total_trials als time-out zijn opgegeven, wordt het hyperparameterafstemmingsexperiment beëindigd wanneer de eerste van deze twee drempelwaarden wordt bereikt.

Notitie

Het aantal gelijktijdige proeftaken wordt gated op de resources die beschikbaar zijn in het opgegeven rekendoel. Zorg ervoor dat het rekendoel de beschikbare resources heeft voor de gewenste gelijktijdigheid.

sweep_job.set_limits(max_total_trials=20, max_concurrent_trials=4, timeout=1200)

Met deze code configureert u het hyperparameter-afstemmingsexperiment om maximaal 20 totale proeftaken te gebruiken, waarbij vier proeftaken tegelijk worden uitgevoerd met een time-out van 1200 seconden voor de hele sweep-taak.

Hyperparameter-afstemmingsexperiment configureren

Als u uw hyperparameterafstemmingsexperiment wilt configureren, geeft u het volgende op:

  • De gedefinieerde zoekruimte voor hyperparameters
  • Uw sampling-algoritme
  • Uw beleid voor vroegtijdige beëindiging
  • Uw doelstelling
  • Bronlimieten
  • CommandJob of CommandComponent
  • SweepJob

SweepJob kan een hyperparameter-sweep uitvoeren op het opdracht- of opdrachtonderdeel.

Notitie

Het rekendoel dat wordt gebruikt, sweep_job moet voldoende resources hebben om aan uw gelijktijdigheidsniveau te voldoen. Zie Rekendoelen voor meer informatie over rekendoelen.

Configureer uw hyperparameterafstemmingsexperiment:

from azure.ai.ml import MLClient
from azure.ai.ml import command, Input
from azure.ai.ml.sweep import Choice, Uniform, MedianStoppingPolicy
from azure.identity import DefaultAzureCredential

# Create your base command job
command_job = command(
    code="./src",
    command="python main.py --iris-csv ${{inputs.iris_csv}} --learning-rate ${{inputs.learning_rate}} --boosting ${{inputs.boosting}}",
    environment="AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu@latest",
    inputs={
        "iris_csv": Input(
            type="uri_file",
            path="https://azuremlexamples.blob.core.windows.net/datasets/iris.csv",
        ),
        "learning_rate": 0.9,
        "boosting": "gbdt",
    },
    compute="cpu-cluster",
)

# Override your inputs with parameter expressions
command_job_for_sweep = command_job(
    learning_rate=Uniform(min_value=0.01, max_value=0.9),
    boosting=Choice(values=["gbdt", "dart"]),
)

# Call sweep() on your command job to sweep over your parameter expressions
sweep_job = command_job_for_sweep.sweep(
    compute="cpu-cluster",
    sampling_algorithm="random",
    primary_metric="test-multi_logloss",
    goal="Minimize",
)

# Specify your experiment details
sweep_job.display_name = "lightgbm-iris-sweep-example"
sweep_job.experiment_name = "lightgbm-iris-sweep-example"
sweep_job.description = "Run a hyperparameter sweep job for LightGBM on Iris dataset."

# Define the limits for this sweep
sweep_job.set_limits(max_total_trials=20, max_concurrent_trials=10, timeout=7200)

# Set early stopping on this one
sweep_job.early_termination = MedianStoppingPolicy(
    delay_evaluation=5, evaluation_interval=2
)

De command_job functie wordt aangeroepen als een functie, zodat we de parameterexpressies kunnen toepassen op de sweep-invoer. De sweep functie wordt vervolgens geconfigureerd met trial, sampling-algorithm, objective, en limitscompute. Het bovenstaande codefragment wordt opgehaald uit het voorbeeldnotebook Hyperparameter-opruimen uitvoeren op een Command of CommandComponent. In dit voorbeeld worden de learning_rate en boosting parameters afgestemd. Het vroegtijdig stoppen van taken wordt bepaald door een MedianStoppingPolicy, waardoor een taak wordt gestopt waarvan de primaire metrische waarde slechter is dan de mediaan van de gemiddelden voor alle trainingstaken.( zie naslaginformatie over de medianStoppingPolicy-klasse).

Raadpleeg dit codevoorbeeld om te zien hoe de parameterwaarden worden ontvangen, geparseerd en doorgegeven aan het trainingsscript dat moet worden afgestemd

Belangrijk

Elke hyperparameter-sweep-taak start de training helemaal opnieuw op, inclusief het opnieuw bouwen van het model en alle gegevensladers. U kunt deze kosten minimaliseren met behulp van een Azure Machine Learning-pijplijn of handmatig proces om zoveel mogelijk gegevensvoorbereiding uit te voeren vóór uw trainingstaken.

Hyperparameterafstemmingsexperiment verzenden

Nadat u de configuratie voor het afstemmen van hyperparameters hebt gedefinieerd, dient u de taak in:

# submit the sweep
returned_sweep_job = ml_client.create_or_update(sweep_job)
# get a URL for the status of the job
returned_sweep_job.services["Studio"].endpoint

Hyperparameter-afstemmingstaken visualiseren

U kunt al uw hyperparameterafstemmingstaken in de Azure Machine Learning-studio visualiseren. Zie Taakrecords weergeven in de studio voor meer informatie over het weergeven van een experiment in de portal.

  • Grafiek met metrische gegevens: Met deze visualisatie worden de metrische gegevens bijgehouden die zijn vastgelegd voor elke onderliggende hyperdrive-taak gedurende de duur van het afstemmen van hyperparameters. Elke regel vertegenwoordigt een onderliggende taak en elk punt meet de primaire metrische waarde bij die iteratie van runtime.

    Grafiek met metrische gegevens voor hyperparameters afstemmen

  • Parallelcoördinatendiagram: Deze visualisatie toont de correlatie tussen de primaire metrische prestaties en afzonderlijke hyperparameterwaarden. De grafiek is interactief via het verplaatsen van assen (selecteren en slepen door het aslabel) en door waarden over één as te markeren (selecteer en sleep deze verticaal langs één as om een bereik met gewenste waarden te markeren). De grafiek met parallelle coördinaten bevat een as op het meest rechtse gedeelte van de grafiek waarmee de beste metrische waarde wordt uitgezet die overeenkomt met de hyperparameters die zijn ingesteld voor dat taakexemplaren. Deze as wordt verstrekt om de legenda met kleurovergang van de grafiek op de gegevens te projecteren op een beter leesbare manier.

    Grafiek met parallelle coördinaten van Hyperparameter afstemmen

  • 2Dimensionaal spreidingsdiagram: Deze visualisatie toont de correlatie tussen twee afzonderlijke hyperparameters, samen met de bijbehorende primaire metrische waarde.

    Spreidingsdiagram met 2dimensionale spreidingsdiagrammen afstemmen

  • 3Dimensionaal spreidingsdiagram: deze visualisatie is hetzelfde als 2D, maar biedt drie hyperparameterdimensies van correlatie met de primaire metrische waarde. U kunt ook de grafiek selecteren en slepen om de grafiek te herstellen om verschillende correlaties in de 3D-ruimte weer te geven.

    3dimensionaal spreidingsdiagram afstemmen met hyparameter

De beste proeftaak zoeken

Zodra alle hyperparameter-afstemmingstaken zijn voltooid, haalt u de beste proefuitvoer op:

# Download best trial model output
ml_client.jobs.download(returned_sweep_job.name, output_name="model")

U kunt de CLI gebruiken om alle standaard- en benoemde uitvoer van de beste proeftaak en logboeken van de sweep-taak te downloaden.

az ml job download --name <sweep-job> --all

Optioneel, om alleen de beste proefversie-uitvoer te downloaden

az ml job download --name <sweep-job> --output-name model

Verwijzingen

Volgende stappen