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