RunConfiguration Klas

Vertegenwoordigt de configuratie voor experimentuitvoeringen die zijn gericht op verschillende rekendoelen in Azure Machine Learning.

Het runConfiguration-object bevat de informatie die nodig is om een trainingsuitvoering in een experiment te verzenden. Normaal gesproken maakt u niet rechtstreeks een RunConfiguration-object, maar haalt u er een op uit een methode die het object retourneert, zoals de submit methode van de Experiment klasse.

RunConfiguration is een basisomgevingsconfiguratie die ook wordt gebruikt in andere typen configuratiestappen die afhankelijk zijn van het type uitvoering dat u activeert. Wanneer u bijvoorbeeld een PythonScriptStepinstelt, hebt u toegang tot het RunConfiguration-object van de stap en kunt u Conda-afhankelijkheden configureren of toegang krijgen tot de omgevingseigenschappen voor de uitvoering.

Zie Een rekendoel selecteren en gebruiken om uw model te trainen voor voorbeelden van uitvoeringsconfiguraties.

Initialiseer een RunConfiguration met de standaardinstellingen.

Overname
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

Constructor

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

Parameters

script
str
standaardwaarde: None

Het relatieve pad naar het Python-scriptbestand. Het bestandspad is relatief ten opzichte van de bronmap die wordt doorgegeven aan submit.

arguments
list[str]
standaardwaarde: None

Opdrachtregelargumenten voor het Python-scriptbestand.

framework
str
standaardwaarde: None

Het beoogde framework dat tijdens de uitvoering wordt gebruikt. Ondersteunde frameworks zijn Python, PySpark, TensorFlow en PyTorch.

communicator
str
standaardwaarde: None

De communicator die tijdens de uitvoering is gebruikt. De ondersteunde communicators zijn None, ParameterServer, OpenMpi en IntelMpi. Houd er rekening mee dat voor OpenMpi een aangepaste installatiekopieën met OpenMpi zijn geïnstalleerd. Gebruik ParameterServer of OpenMpi voor AmlCompute-clusters. Gebruik IntelMpi voor gedistribueerde trainingstaken.

conda_dependencies
CondaDependencies
standaardwaarde: None

Wanneer de standaardwaarde Onwaar wordt ingeschakeld, maakt het systeem een Python-omgeving, die de pakketten bevat die zijn opgegeven in conda_dependencies. Als deze optie waar is ingesteld, kan een bestaande Python-omgeving worden opgegeven met de instelling python_interpreter.

auto_prepare_environment
bool
Vereist

AFGEKEURD. Deze instelling wordt niet meer gebruikt.

command
list[str] of str
standaardwaarde: None

De opdracht die moet worden verzonden voor de uitvoering. De opdrachteigenschap kan ook worden gebruikt in plaats van script/argumenten. Zowel opdracht- als script-/argumenteigenschappen kunnen niet samen worden gebruikt om een uitvoering te verzenden. Een scriptbestand verzenden met behulp van de opdrachteigenschap - ['python', 'train.py', '–arg1', arg1_val] Om een werkelijke opdracht uit te voeren - ['ls']

_history_enabled
standaardwaarde: None
_path
standaardwaarde: None
_name
standaardwaarde: None

Opmerkingen

We bouwen machine learning-systemen meestal om een specifiek probleem op te lossen. We kunnen bijvoorbeeld geïnteresseerd zijn in het vinden van het beste model dat webpagina's rangschikt die kunnen worden weergegeven als zoekresultaten die overeenkomen met een query. Voor onze zoektocht naar het beste machine learning-model moeten we mogelijk verschillende algoritmen uitproberen, of andere parameterinstellingen overwegen, enzovoort.

In de Azure Machine Learning SDK gebruiken we het concept van een experiment om vast te leggen dat verschillende trainingsuitvoeringen gerelateerd zijn aan het probleem dat ze proberen op te lossen. Een Experiment fungeert vervolgens als een logische container voor deze trainingsuitvoeringen, waardoor het eenvoudiger is om de voortgang van trainingsuitvoeringen bij te houden, twee trainingsuitvoeringen rechtstreeks te vergelijken, enzovoort.

De RunConfiguration bevat instellingen voor de uitvoeringsomgeving die nodig zijn om een trainingsuitvoering in een experiment te verzenden. Het legt zowel de gedeelde structuur van trainingsuitvoeringen vast die zijn ontworpen om hetzelfde machine learning-probleem op te lossen, als de verschillen in de configuratieparameters (bijvoorbeeld leersnelheid, verliesfunctie, enzovoort) die verschillende trainingsuitvoeringen van elkaar onderscheiden.

In typische trainingsscenario's wordt RunConfiguration gebruikt door een ScriptRunConfig object te maken dat een RunConfiguration-object en een uitvoeringsscript voor training samenbrengt.

De configuratie van RunConfiguration omvat:

  • Bundeling van de bronmap van het experiment, inclusief het verzonden script.

  • De opdrachtregelargumenten voor het verzonden script instellen.

  • Het pad voor de Python-interpreter configureren.

  • Conda-configuratie verkrijgen voor om de toepassingsafhankelijkheden te beheren. Het taakinzendingsproces kan de configuratie gebruiken om een tijdelijke Conda-omgeving in te richten en de toepassing binnen te starten. De tijdelijke omgevingen worden in de cache opgeslagen en opnieuw gebruikt in volgende uitvoeringen.

  • Optioneel gebruik van Docker en aangepaste basisinstallatiekopieën.

  • Optionele keuze voor het verzenden van het experiment naar meerdere typen Azure Compute.

  • Optionele keuze voor het configureren van het materialiseren van invoer en het uploaden van uitvoer.

  • Geavanceerde runtime-instellingen voor algemene runtimes, zoals spark en tensorflow.

In het volgende voorbeeld ziet u hoe u een trainingsscript verzendt op uw lokale computer.


   from azureml.core import ScriptRunConfig, RunConfiguration, Experiment

   # create or load an experiment
   experiment = Experiment(workspace, "MyExperiment")
   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = experiment.submit(config)

In het volgende voorbeeld ziet u hoe u een trainingsscript in uw cluster verzendt met behulp van de opdrachteigenschap in plaats van script en argumenten.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['python', 'train.py', '--arg1', arg1_val],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

In het volgende voorbeeld ziet u hoe u een opdracht uitvoert in uw cluster.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['ls', '-l'],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

Variabelen

environment
Environment

De omgevingsdefinitie. Met dit veld configureert u de Python-omgeving. Deze kan worden geconfigureerd voor het gebruik van een bestaande Python-omgeving of voor het instellen van een tijdelijke omgeving voor het experiment. De definitie is ook verantwoordelijk voor het instellen van de vereiste toepassingsafhankelijkheden.

max_run_duration_seconds
int

De maximaal toegestane tijd voor de uitvoering. Het systeem probeert de uitvoering automatisch te annuleren als het langer duurde dan deze waarde.

node_count
int

Het aantal knooppunten dat voor de taak moet worden gebruikt.

priority
int

De prioriteit van de taak voor planningsbeleid.

history
HistoryConfiguration

De configuratiesectie die wordt gebruikt om functies voor logboekregistratie van experimentgeschiedenis uit te schakelen en in te schakelen.

spark
SparkConfiguration

Wanneer het platform is ingesteld op PySpark, wordt de sectie Spark-configuratie gebruikt om de standaard SparkConf in te stellen voor de verzonden taak.

hdi
HdiConfiguration

De sectie HDI-configuratie wordt alleen van kracht wanneer het doel is ingesteld op een Azure HDI-berekening. De HDI-configuratie wordt gebruikt om de YARN-implementatiemodus in te stellen. De standaardimplementatiemodus is cluster.

docker
DockerConfiguration

De sectie Docker-configuratie wordt gebruikt om variabelen in te stellen voor de Docker-omgeving.

tensorflow
TensorflowConfiguration

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde TensorFlow-parameters. Deze parameter wordt alleen van kracht wanneer de framework is ingesteld op TensorFlow en de communicator op ParameterServer. AmlCompute is de enige ondersteunde berekening voor deze configuratie.

mpi
MpiConfiguration

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde MPI-taakparameters. Deze parameter wordt alleen van kracht wanneer de framework is ingesteld op Python en de communicator op OpenMpi of IntelMpi. AmlCompute is het enige ondersteunde rekentype voor deze configuratie.

pytorch
PyTorchConfiguration

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde PyTorch-taakparameters. Deze parameter wordt alleen van kracht wanneer de framework is ingesteld op PyTorch en de communicator op Nccl of Gloo. AmlCompute is het enige ondersteunde rekentype voor deze configuratie.

paralleltask
ParallelTaskConfiguration

De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde paralleltask-taakparameters. Deze parameter wordt alleen van kracht wanneer de framework is ingesteld op Python en de communicator op ParallelTask. AmlCompute is het enige ondersteunde rekentype voor deze configuratie.

data_references
dict[str, DataReferenceConfiguration]

Alle gegevensbronnen zijn beschikbaar voor de uitvoering tijdens de uitvoering op basis van elke configuratie. Voor elk item van de woordenlijst is de sleutel een naam die is gegeven aan de gegevensbron en de waarde is een DataReferenceConfiguration.

data
dict[str, Data]

Alle gegevens die tijdens de uitvoering beschikbaar moeten worden gesteld voor de uitvoering.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Alle gegevens om datacache beschikbaar te maken voor de uitvoering.

output_data
OutputData

Alle uitvoer die voor deze uitvoering moet worden geüpload en bijgehouden.

source_directory_data_store
str

Het back-upgegevensarchief voor de projectshare.

amlcompute
AmlComputeConfiguration

De details van het rekendoel dat tijdens het experiment moet worden gemaakt. De configuratie wordt alleen van kracht wanneer het rekendoel AmlCompute is.

kubernetescompute
KubernetesComputeConfiguration

De details van het rekendoel dat tijdens het experiment moet worden gebruikt. De configuratie wordt alleen van kracht wanneer het rekendoel KubernetesCompute is.

services
dict[str, ApplicationEndpointConfiguration]

Eindpunten die interactief zijn met de rekenresource. Toegestane eindpunten zijn Jupyter, JupyterLab, VS Code, Tensorboard, SSH en Aangepaste poorten.

Methoden

delete

Een uitvoeringsconfiguratiebestand verwijderen.

Hiermee wordt een weergegeven UserErrorException als het configuratiebestand niet wordt gevonden.

load

Laad een eerder opgeslagen uitvoeringsconfiguratiebestand vanuit een bestand op schijf.

Als path naar een bestand verwijst, wordt de RunConfiguration uit dat bestand geladen.

Als path naar een map verwijst, wat een projectmap moet zijn, wordt de RunConfiguration geladen vanuit <path>/.azureml/<name> of <path>/aml_config/<name>.

save

Sla de RunConfiguration op in een bestand op schijf.

A UserErrorException wordt verhoogd wanneer:

  • De RunConfiguration kan niet worden opgeslagen met de opgegeven naam.

  • Er is geen name parameter opgegeven.

  • De path parameter is ongeldig.

Als path de indeling <dir_path>/<file_name> is, waarbij <dir_path> een geldige map is, wordt RunConfiguration opgeslagen op <dir_path>/<file_name>.

Als path verwijst naar een map, wat een projectmap moet zijn, wordt de RunConfiguration opgeslagen op <path>/.azureml/<name> of <path>/aml_config/<name>.

Deze methode is handig bij het handmatig bewerken van de configuratie of bij het delen van de configuratie met de CLI.

delete

Een uitvoeringsconfiguratiebestand verwijderen.

Hiermee wordt een weergegeven UserErrorException als het configuratiebestand niet wordt gevonden.

static delete(path, name)

Parameters

path
str
Vereist

Een gebruiker heeft de hoofdmap geselecteerd voor het uitvoeren van configuraties. Dit is meestal de Git-opslagplaats of de hoofdmap van het Python-project. De configuratie wordt verwijderd uit een submap met de naam .azureml.

name
str
Vereist

De naam van het configuratiebestand.

Uitzonderingen

UserErrorException

load

Laad een eerder opgeslagen uitvoeringsconfiguratiebestand vanuit een bestand op schijf.

Als path naar een bestand verwijst, wordt de RunConfiguration uit dat bestand geladen.

Als path naar een map verwijst, wat een projectmap moet zijn, wordt de RunConfiguration geladen vanuit <path>/.azureml/<name> of <path>/aml_config/<name>.

static load(path, name=None)

Parameters

path
str
Vereist

Een gebruiker heeft de hoofdmap geselecteerd voor het uitvoeren van configuraties. Dit is meestal de Git-opslagplaats of de hoofdmap van het Python-project. Voor compatibiliteit met eerdere versies wordt de configuratie ook geladen vanuit .azureml of aml_config submap. Als het bestand zich niet in deze mappen bevindt, wordt het bestand geladen vanuit het opgegeven pad.

name
str
standaardwaarde: None

De naam van het configuratiebestand.

Retouren

Het configuratieobject uitvoeren.

Retourtype

Uitzonderingen

UserErrorException

save

Sla de RunConfiguration op in een bestand op schijf.

A UserErrorException wordt verhoogd wanneer:

  • De RunConfiguration kan niet worden opgeslagen met de opgegeven naam.

  • Er is geen name parameter opgegeven.

  • De path parameter is ongeldig.

Als path de indeling <dir_path>/<file_name> is, waarbij <dir_path> een geldige map is, wordt RunConfiguration opgeslagen op <dir_path>/<file_name>.

Als path verwijst naar een map, wat een projectmap moet zijn, wordt de RunConfiguration opgeslagen op <path>/.azureml/<name> of <path>/aml_config/<name>.

Deze methode is handig bij het handmatig bewerken van de configuratie of bij het delen van de configuratie met de CLI.

save(path=None, name=None, separate_environment_yaml=False)

Parameters

separate_environment_yaml
bool
standaardwaarde: False

Hiermee wordt aangegeven of de configuratie van de Conda-omgeving moet worden opgeslagen. Indien waar, wordt de Configuratie van de Conda-omgeving opgeslagen in een YAML-bestand met de naam 'environment.yml'.

path
str
standaardwaarde: None

Een gebruiker heeft de hoofdmap geselecteerd voor het uitvoeren van configuraties. Dit is meestal de Git-opslagplaats of de hoofdmap van het Python-project. De configuratie wordt opgeslagen in een submap met de naam .azureml.

name
str
standaardwaarde: None

[Vereist] De naam van het configuratiebestand.

Retourtype

Uitzonderingen

UserErrorException

Kenmerken

auto_prepare_environment

Haal de auto_prepare_environment parameter op. Dit is een afgeschafte en ongebruikte instelling.

environment_variables

Runtime-omgevingsvariabelen.

Retouren

Runtime-variabelen

Retourtype

target

Haal het rekendoel op waar de taak is gepland voor uitvoering.

Het standaarddoel is 'lokaal' dat verwijst naar de lokale computer. Beschikbare cloud-rekendoelen kunnen worden gevonden met behulp van de functie compute_targets.

Retouren

De doelnaam

Retourtype

str