Fájlok mentése és írása az Azure Machine-Tanulás kísérletekhez
ÉRVÉNYES:Python SDK azureml v1
Ebben a cikkben megtudhatja, hogy hová mentheti a bemeneti fájlokat, és hol írhat kimeneti fájlokat a kísérletekből a tárterületkorlát hibáinak és a kísérlet késésének elkerülése érdekében.
Amikor egy számítási célon elindítja a betanítási feladatokat, azok el vannak különítve a külső környezetektől. Ennek a kialakításnak a célja a kísérlet reprodukálhatóságának és hordozhatóságának biztosítása. Ha ugyanazt a szkriptet kétszer futtatja ugyanazon vagy egy másik számítási célon, ugyanazokat az eredményeket kapja. Ezzel a kialakítással a számítási célokat állapot nélküli számítási erőforrásokként kezelheti, amelyek mindegyike nem rendelkezik affinitással a befejezés után futó feladatokhoz.
Bemeneti fájlok mentésének helye
Mielőtt kísérletet kezdeményezhet egy számítási célon vagy a helyi számítógépen, győződjön meg arról, hogy a szükséges fájlok elérhetők az adott számítási célhoz, például a függőségi fájlokhoz és a kód futtatásához szükséges adatfájlokhoz.
Az Azure Machine Tanulás feladatok betanítási szkriptjei a teljes forráskönyvtár másolásával. Ha olyan bizalmas adatokkal rendelkezik, amelyeket nem szeretne feltölteni, használjon .ignore fájlt , vagy ne vegye fel azokat a forráskönyvtárba. Ehelyett egy adattár használatával érheti el az adatokat.
A kísérletek pillanatképeinél a tárhelykorlát 300 MB és/vagy 2000 fájl.
Ezért a következőket javasoljuk:
Fájlok tárolása Azure Machine-Tanulás adatkészletben. Ez megakadályozza a kísérletek késésével kapcsolatos problémákat, és az adatok távoli számítási célból való elérésének előnyeivel jár, ami azt jelenti, hogy a hitelesítést és a csatlakoztatást az Azure Machine Tanulás kezeli. További információ arról, hogyan adhat meg adatkészletet bemeneti adatforrásként a betanítási szkriptben a Betanítás adatkészletekkel szolgáltatással.
Ha csak néhány adatfájlra és függőségi szkriptre van szüksége, és nem tud adattárat használni, helyezze a fájlokat ugyanabba a mappakönyvtárba, mint a betanítási szkript. Adja meg ezt a mappát közvetlenül a
source_directory
betanítási szkriptben vagy a betanítási szkriptet meghívó kódban.
A kísérlet pillanatképeinek tárolási korlátai
Kísérletek esetén az Azure Machine Tanulás automatikusan pillanatképet készít a kódról a feladat konfigurálásakor javasolt könyvtár alapján. Egy folyamat esetében a címtár minden lépéshez konfigurálva van.
Ennek teljes korlátja 300 MB és/vagy 2000 fájl. Ha túllépi ezt a korlátot, a következő hibaüzenet jelenik meg:
While attempting to take snapshot of .
Your total snapshot size exceeds the limit of 300.0 MB
A hiba megoldásához tárolja a kísérletfájlokat egy adattárban. Ha nem tud adattárat használni, az alábbi táblázat lehetséges alternatív megoldásokat kínál.
Kísérlet leírása | Tárterületkorlát-megoldás |
---|---|
Kevesebb mint 2000 fájl – nem használható adattár | Pillanatkép méretkorlátjának felülbírálása a azureml._restclient.snapshots_client.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size' és azureml._restclient.constants.SNAPSHOT_MAX_SIZE_BYTES = 'insert_desired_size' Ez a fájlok számától és méretétől függően több percet is igénybe vehet. |
Adott szkriptkönyvtárat kell használnia | Ha meg szeretné akadályozni, hogy a szükségtelen fájlok bekerüljenek a pillanatképbe, hozzon létre egy figyelmen kívül hagyott fájlt (.gitignore vagy .amlignore ) a könyvtárban. Adja hozzá a kizárni kívánt fájlokat és könyvtárakat ehhez a fájlhoz. A fájlban használandó szintaxissal kapcsolatos további információkért lásd a szintaxist és a minták helyét .gitignore . A .amlignore fájl ugyanazt a szintaxist használja. Ha mindkét fájl létezik, a rendszer a .amlignore fájlt használja, és a .gitignore fájl nincs használatban. |
Folyamat | Minden lépéshez használjon másik alkönyvtárat |
Jupyter-notebookok | Hozzon létre egy .amlignore fájlt, vagy helyezze át a jegyzetfüzetet egy új, üres alkönyvtárba, és futtassa újra a kódot. |
Fájlok írásának helye
A betanítási kísérletek elkülönítése miatt a feladatok során bekövetkező fájlok módosításai nem feltétlenül maradnak meg a környezeten kívül. Ha a szkript helyien módosítja a fájlokat a számításhoz, a módosítások nem maradnak meg a következő kísérletfeladathoz, és a rendszer nem propagálja őket automatikusan az ügyfélszámítógépre. Ezért az első kísérletfeladat során végrehajtott módosítások nem érintik és nem érintik a másodikban lévőket.
Módosítások írásakor javasoljuk, hogy fájlokat írjon a tárolóba egy Azure Machine Tanulás OutputFileDatasetConfig objektummal rendelkező adatkészleten keresztül. Megtudhatja , hogyan hozhat létre OutputFileDatasetConfig fájlt.
Ellenkező esetben írjon fájlokat a és/vagy ./logs
a ./outputs
mappába.
Fontos
Két mappa, kimenet és napló speciális kezelést kap az Azure Machine Tanulás. A betanítás során, amikor fájlokat./outputs
ír és./logs
mappákba ír, a fájlok automatikusan feltöltődnek a feladatelőzményeibe, így a feladat befejezése után hozzáférhet hozzájuk.
Az olyan kimenetek esetében, mint az állapotüzenetek vagy a pontozási eredmények, írjon fájlokat a
./outputs
mappába, hogy azok a feladatelőzmények összetevőiként megmaradjanak. Vegye figyelembe a mappába írt fájlok számát és méretét, mivel késés akkor fordulhat elő, ha a tartalom feltöltése a feladatelőzményekbe történik. Ha a késés aggodalomra ad okot, ajánlott fájlokat írni egy adattárba.Ha naplóként szeretné menteni az írott fájlt a feladatelőzményekben, írjon fájlokat a mappába
./logs
. A naplók valós időben vannak feltöltve, így ez a módszer alkalmas élő frissítések távoli feladatból való streamelésre.
Következő lépések
További információ az adatok storage-ból való eléréséről.
További információ a számítási célok modellbetanításhoz és üzembe helyezéshez való létrehozásáról