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._AbstractRunConfigElementRunConfiguration
Constructor
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
Parameters
Name | Description |
---|---|
script
|
Het relatieve pad naar het Python-scriptbestand. Het bestandspad is relatief ten opzichte van de bronmap die wordt doorgegeven aan submit. Default value: None
|
arguments
|
Opdrachtregelargumenten voor het Python-scriptbestand. Default value: None
|
framework
|
Het beoogde framework dat tijdens de uitvoering wordt gebruikt. Ondersteunde frameworks zijn Python, PySpark, TensorFlow en PyTorch. Default value: None
|
communicator
|
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. Default value: None
|
conda_dependencies
|
Wanneer de standaardwaarde Onwaar wordt ingeschakeld, maakt het systeem een Python-omgeving, die de pakketten bevat die zijn opgegeven in Default value: None
|
auto_prepare_environment
Vereist
|
AFGEKEURD. Deze instelling wordt niet meer gebruikt. |
command
|
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'] Default value: None
|
_history_enabled
|
Default value: None
|
_path
|
Default value: None
|
_name
|
Default value: 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
Name | Description |
---|---|
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
|
De maximaal toegestane tijd voor de uitvoering. Het systeem probeert de uitvoering automatisch te annuleren als het langer duurde dan deze waarde. |
node_count
|
Het aantal knooppunten dat voor de taak moet worden gebruikt. |
priority
|
De prioriteit van de taak voor planningsbeleid. |
history
|
De configuratiesectie die wordt gebruikt om functies voor logboekregistratie van experimentgeschiedenis uit te schakelen en in te schakelen. |
spark
|
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
|
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
|
De sectie Docker-configuratie wordt gebruikt om variabelen in te stellen voor de Docker-omgeving. |
tensorflow
|
De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde TensorFlow-parameters.
Deze parameter wordt alleen van kracht wanneer de |
mpi
|
De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde MPI-taakparameters.
Deze parameter wordt alleen van kracht wanneer de |
pytorch
|
De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde PyTorch-taakparameters.
Deze parameter wordt alleen van kracht wanneer de |
paralleltask
|
De configuratiesectie die wordt gebruikt voor het configureren van gedistribueerde paralleltask-taakparameters.
Deze parameter wordt alleen van kracht wanneer de |
data_references
|
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
|
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
|
Alle uitvoer die voor deze uitvoering moet worden geüpload en bijgehouden. |
source_directory_data_store
|
Het back-upgegevensarchief voor de projectshare. |
amlcompute
|
De details van het rekendoel dat tijdens het experiment moet worden gemaakt. De configuratie wordt alleen van kracht wanneer het rekendoel AmlCompute is. |
kubernetescompute
|
De details van het rekendoel dat tijdens het experiment moet worden gebruikt. De configuratie wordt alleen van kracht wanneer het rekendoel KubernetesCompute is. |
services
|
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 Als |
save |
Sla de RunConfiguration op in een bestand op schijf. A UserErrorException wordt verhoogd wanneer:
Als Als 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
Name | Description |
---|---|
path
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
Vereist
|
De naam van het configuratiebestand. |
Uitzonderingen
Type | Description |
---|---|
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
Name | Description |
---|---|
path
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
|
De naam van het configuratiebestand. Default value: None
|
Retouren
Type | Description |
---|---|
Het configuratieobject uitvoeren. |
Uitzonderingen
Type | Description |
---|---|
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
Name | Description |
---|---|
separate_environment_yaml
|
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'. Default value: False
|
path
|
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. Default value: None
|
name
|
[Vereist] De naam van het configuratiebestand. Default value: None
|
Retouren
Type | Description |
---|---|
Uitzonderingen
Type | Description |
---|---|
UserErrorException
|
Kenmerken
auto_prepare_environment
Haal de auto_prepare_environment
parameter op. Dit is een afgeschafte en ongebruikte instelling.
environment_variables
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
Type | Description |
---|---|
De doelnaam |