Var du kan spara och skriva filer för Azure Machine Learning-experiment

GÄLLER FÖR:Python SDK azureml v1

I den här artikeln får du lära dig var du sparar indatafiler och var du kan skriva utdatafiler från dina experiment för att förhindra lagringsgränsfel och experimentfördröjning.

När du startar träningsjobb på ett beräkningsmål isoleras de från externa miljöer. Syftet med den här designen är att säkerställa experimentets reproducerbarhet och portabilitet. Om du kör samma skript två gånger, på samma eller ett annat beräkningsmål, får du samma resultat. Med den här designen kan du behandla beräkningsmål som tillståndslösa beräkningsresurser, där var och en inte har någon tillhörighet till de jobb som körs när de har slutförts.

Var du kan spara indatafiler

Innan du kan initiera ett experiment på ett beräkningsmål eller din lokala dator måste du se till att de nödvändiga filerna är tillgängliga för beräkningsmålet, till exempel beroendefiler och datafiler som koden behöver köra.

Utbildningsskript för Azure Machine Learning-jobb genom att kopiera hela källkatalogen. Om du har känsliga data som du inte vill ladda upp använder du en .ignore-fil eller tar inte med den i källkatalogen. I stället kan du komma åt dina data med hjälp av ett datalager.

Lagringsgränsen för experimentögonblicksbilder är 300 MB och/eller 2 000 filer.

Därför rekommenderar vi:

  • Lagra dina filer i en Azure Machine Learning-datauppsättning. Detta förhindrar problem med experimentfördröjning och har fördelarna med att komma åt data från ett fjärrberäkningsmål, vilket innebär att autentisering och montering hanteras av Azure Machine Learning. Läs mer om hur du anger en datauppsättning som indatakälla i träningsskriptet med Träna med datauppsättningar.

  • Om du bara behöver ett par datafiler och beroendeskript och inte kan använda ett datalager placerar du filerna i samma mappkatalog som träningsskriptet. Ange den här mappen som din source_directory direkt i träningsskriptet eller i koden som anropar träningsskriptet.

Lagringsgränser för ögonblicksbilder av experiment

För experiment gör Azure Machine Learning automatiskt en ögonblicksbild av din kod baserat på den katalog som du föreslår när du konfigurerar jobbet. För en pipeline konfigureras katalogen för varje steg.

Det här har en total gräns på 300 MB och/eller 2 000 filer. Om du överskrider den här gränsen visas följande fel:

While attempting to take snapshot of .
Your total snapshot size exceeds the limit of 300.0 MB

Lös det här felet genom att lagra experimentfilerna i ett datalager. Om du inte kan använda ett datalager erbjuder tabellen nedan möjliga alternativa lösningar.

Beskrivning av experiment Lösning för lagringsgräns
Mindre än 2 000 filer och kan inte använda ett datalager Åsidosätt storleksgräns för ögonblicksbilder med
azureml._restclient.snapshots_client.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size' och azureml._restclient.constants.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size'
Det kan ta flera minuter beroende på antalet filer och storleken på filerna.
Måste använda en specifik skriptkatalog Om du vill förhindra att onödiga filer tas med i ögonblicksbilden skapar du en ignorerande fil (.gitignore eller .amlignore) i katalogen. Lägg till de filer och kataloger som ska undantas i den här filen. Mer information om syntaxen som ska användas i den här filen finns i syntax och mönster för .gitignore. Filen .amlignore använder samma syntax. Om båda filerna finns .amlignore används filen och .gitignore filen används inte.
Pipeline Använd en annan underkatalog för varje steg
Jupyter Notebook Skapa en .amlignore fil eller flytta anteckningsboken till en ny, tom underkatalog och kör koden igen.

Var du kan skriva filer

På grund av isoleringen av träningsexperiment sparas inte nödvändigtvis ändringar i filer som inträffar under jobb utanför din miljö. Om skriptet ändrar filerna lokalt för beräkning sparas inte ändringarna för nästa experimentjobb och de sprids inte tillbaka till klientdatorn automatiskt. Därför påverkar inte de ändringar som gjordes under det första experimentjobbet dem i det andra.

När du skriver ändringar rekommenderar vi att du skriver filer till lagring via en Azure Machine Learning-datauppsättning med ett OutputFileDatasetConfig-objekt. Se hur du skapar en OutputFileDatasetConfig.

Annars skriver du filer till och ./outputs /eller ./logs -mappen.

Viktigt!

Två mappar, utdata och loggar, får särskild behandling av Azure Machine Learning. Under träningen, när du skriver filer till./outputs och./logs mappar, laddas filerna automatiskt upp till din jobbhistorik, så att du har åtkomst till dem när jobbet är klart.

  • För utdata som statusmeddelanden eller bedömningsresultat skriver du filer till ./outputs mappen, så att de sparas som artefakter i jobbhistoriken. Tänk på antalet och storleken på filer som skrivits till den här mappen, eftersom svarstiden kan uppstå när innehållet laddas upp till jobbhistoriken. Om svarstiden är ett problem rekommenderar vi att du skriver filer till ett datalager.

  • Om du vill spara den skrivna filen som loggar i jobbhistoriken skriver du filer till ./logs mappen. Loggarna laddas upp i realtid, så den här metoden är lämplig för direktuppspelning av liveuppdateringar från ett fjärrjobb.

Nästa steg