Megosztás a következőn keresztül:


Fájlok mentése és írása Azure Machine Learning-kísérletekhez

A KÖVETKEZŐKRE VONATKOZIK: 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 számítási célon futtat 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 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él számára. Például a kódnak futtatnia kell a függőségi fájlokat és adatfájlokat.

Az Azure Machine Learning-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érleti pillanatképek tárolási korlátja 300 MB és/vagy 2000 fájl.

Ezért a következőket javasoljuk:

  • Fájlok tárolása Egy Azure Machine Learning-adatkészletben. Az adathalmazok használata megakadályozza a kísérlet késésével kapcsolatos problémákat, és előnyei vannak az adatok távoli számítási célból való elérésének. Az Azure Machine Learning kezeli az adathalmaz hitelesítését és csatlakoztatását. 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 Learning 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 OutputFileDatasetConfig objektummal rendelkező Azure Machine Learning-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ó különleges kezelést kap az Azure Machine Learningtől. 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. Ügyeljen a mappába írt fájlok számára és méretére, mert késés akkor fordulhat elő, ha a tartalom fel van töltve a feladatelőzményekbe. 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