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 kör 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 är klara.
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 det beräkningsmålet. Till exempel beroendefiler och datafiler som koden måste 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 ögonblicksbilder av experiment är 300 MB och/eller 2 000 filer.
Därför rekommenderar vi:
Lagra dina filer i en Azure Machine Learning-datauppsättning. Användning av datauppsättningar förhindrar problem med experimentfördröjning och har fördelarna med att komma åt data från ett fjärrberäkningsmål. Azure Machine Learning hanterar autentisering och montering av datamängden. 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å antal och storlek på filer. |
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, till exempel statusmeddelanden eller bedömningsresultat, skriver du filer till mappen, så att de sparas som artefakter i jobbhistoriken
./outputs
. 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
Läs mer om att komma åt data från lagring.
Läs mer om Att skapa beräkningsmål för modellträning och distribution