Kép a szerkesztőtől
Hydra A könyvtár rugalmas és hatékony konfigurációkezelő rendszert biztosít, amely lehetővé teszi a hierarchikus konfigurációk dinamikus létrehozását a konfigurációs fájlok és a parancssor segítségével.
Ez a hatékony eszköz egyszerű és hatékony módot kínál a különféle konfigurációk egy helyen történő kezelésére és rendszerezésére, összetett többszintű konfigurációs struktúrák létrehozásával korlátok nélkül, amelyek elengedhetetlenek lehetnek a gépi tanulási projektekben.
Mindez lehetővé teszi, hogy egyszerűen váltson a paraméterek között, és próbáljon ki különböző konfigurációkat a kód manuális frissítése nélkül. A paraméterek rugalmas és moduláris definiálásával sokkal könnyebbé válik az új ML modellek iterálása és a különböző megközelítések gyorsabb összehasonlítása, ami időt és erőforrást takaríthat meg, emellett pedig a fejlesztési folyamatot is hatékonyabbá teszi.
A Hydra központi komponensként szolgálhat a mély tanulási folyamatokban (találhat példát a képzési folyamatsablonra itt), amely az összes belső modult hangszerelné.
Egy dekoratőr hydra.main
állítólag a Hydra konfiguráció betöltésére szolgál a csővezeték indításakor. Itt a Hydra nyelvtani elemző elemzi a konfigurációt, egyesíti, összeállítja és átadja a folyamat fő funkciójának.
Ezenkívül a Hydra is megvalósíthatja Írás API, Felhasználva initialize
, initialize_config_module
or initialize_config_dir
, ahelyett hydra.main
lakberendező:
Egy objektum példányosítható a konfigurációból, ha tartalmazza a _target_
gomb például osztály vagy függvénynévvel torchmetrics.Accuracy
. Ezenkívül a konfiguráció tartalmazhat más paramétereket is, amelyeket át kell adni az objektum példányosításnak. A Hydra biztosítja hydra.utils.instantiate()
függvény (és álneve hydra.utils.call()
) objektumok példányosításához és osztály vagy függvény hívásához. Előnyösebb használni instantiate
tárgyak létrehozásához és call
függvények meghívására.
E konfiguráció alapján egyszerűen példányosíthat:
- veszteség keresztül
loss = hydra.utils.instantiate(config.loss)
- metrikus via
metric = hydra.utils.instantiate(config.metric)
Emellett több stratégiát is támogat a konfigurációs paraméterek konvertálására: none
, partial
, object
és a all
Az _convert_
attribútum ennek a beállításnak a kezelésére szolgál. További részleteket találhat itt.
Sőt, kínál a részleges példányosítás, ami nagyon hasznos lehet például függvénypéldányosításhoz vagy rekurzív objektum példányosításhoz.
A Hydra parancssori műveleteket biztosít a konfigurációs paraméterek felülbírálásához:
- A meglévő konfigurációs érték lecserélhető egy másik érték átadásával.
- A konfigurációban nem szereplő új konfigurációs érték a következővel adható hozzá
+
operátor. - Ha a konfigurációnak már van értéke, az felülbírálható a
++
operátor. Ha az érték nem létezik a konfigurációban, akkor hozzáadódik.
Különféle izgalmas funkciókat is támogat, mint például:
- Strukturált konfigurációk a rendelkezésre álló primitív típusok bővített listájával, beágyazott szerkezettel, primitíveket tartalmazó tárolókkal, alapértelmezett értékekkel, alulról felfelé haladó értékek felülbírálásával és még sok mással. Ez a lehetőségek széles skáláját kínálja a konfigurációk sokféle formában történő szervezésére.
- Színes rönkök számára
hydra/job_logging
és ahydra/hydra_logging
. - Hiperparaméter-seprők további kód nélkül: Optuna, Nevergrad, Ax.
- Egyedi bővítmények
A Hydra lehetőséget ad funkcionalitásának még tovább bővítésére egyéni rezolverek hozzáadásával OmegaConf könyvtár. Lehetővé teszi egyéni végrehajtható kifejezések hozzáadását a konfigurációhoz. OmegaConf.register_new_resolver()
függvény az ilyen feloldók regisztrálására szolgál.
Alapértelmezés szerint az OmegaConf a következő feloldókat támogatja:
oc.env
: egy környezeti változó értékét adja visszaoc.create
: konfigurációs csomópontok dinamikus generálására használhatóoc.deprecated
: egy konfigurációs csomópont elavultként való megjelölésére használhatóoc.decode
: egy karakterláncot dekódol egy adott kodek segítségéveloc.select
: alapértelmezett értéket ad arra az esetre, ha az elsődleges interpolációs kulcs nem található, vagy olyan kulcsokat választ ki, amelyek egyébként illegális interpolációs kulcsok, vagy kezeli a hiányzó értékeket isoc.dict.{keys,value}
: analóg a dict.keys és dict.values metódusaival az egyszerű Python szótárakban
További részletek itt.
Ezért ez egy hatékony eszköz, amely lehetővé teszi bármilyen egyéni feloldó hozzáadását. Fárasztó és időigényes lehet például a veszteség- vagy metrikanevek többszöri beírása a konfigurációkba több helyre, mint pl. early_stopping
konfiguráció, model_checkpoint
config, az ütemező paramétereit tartalmazó konfiguráció, vagy valahol máshol. Megoldható egy egyedi feloldó hozzáadásával __loss__
és a __metric__
a neveket a tényleges veszteség vagy metrikanév alapján, amelyet a konfigurációnak továbbít, és a Hydra példányosít.
Megjegyzés: Előtte regisztrálnia kell az egyéni feloldókat hydra.main
or Írás API hívásokat. Ellenkező esetben a Hydra config parser egyszerűen nem alkalmazza.
In sablonom a gyors mély tanulási kísérletekhez, lakberendezőként valósul meg utils.register_custom_resolvers
, amely lehetővé teszi az összes egyedi feloldó regisztrálását egy helyen. Támogatja a fő Hydra parancssori jelzőit, amelyek szükségesek a konfigurációs elérési út, név vagy könyvtár felülbírálásához. Alapértelmezés szerint lehetővé teszi a cserét __loss__
nak nek loss.__class__.__name__
és a __metric__
nak nek metric.__class__.__name__
ilyen szintaxison keresztül: ${replace:"__metric__/valid"}
. Használjon idézőjeleket a belső érték meghatározásához ${replace:"..."}
hogy elkerüljük a nyelvtani problémákat a Hydra konfigurációs elemzővel.
Tekintsen meg további részleteket erről utils.register_custom_resolvers
itt. Könnyen bővítheti bármilyen más célra.
Ez a hatékony eszköz jelentősen leegyszerűsíti az összetett csővezetékek fejlesztését és konfigurálását, például:
- Modulok példányosítása bármilyen egyedi logikával a motorháztető alatt, pl.
- Példányosítsa az egész modult az összes belső almodullal rekurzív módon a Hydra segítségével.
- A fő modult és a belső almodulok egyes részeit a Hydra inicializálhatja, a többit pedig manuálisan.
- Inicializálja manuálisan a fő modult és az összes almodult.
- Csomagoljon dinamikus struktúrákat, például adatbővítéseket a konfigurációhoz, ahol könnyedén beállíthat bármilyen
transforms
osztályok, paraméterek vagy megfelelő jelentkezési sorrend. Lásd a lehetséges megvalósítási példátTransformsWrapper
alapján albumentációk könyvtár erre a célra, amely könnyen átdolgozható bármely over augmentations csomaghoz. Konfigurációs példa:
- Hozzon létre összetett többszintű konfigurációs struktúrát. Itt a konfigurációk megszervezésének vázlata:
- És még sok más dolog… Nagyon kevés korlátja van, így bármilyen egyéni logikához használhatja, amelyet a projektjében szeretne megvalósítani.
A Hydra megnyitja az utat a méretezhető konfigurációkezelő rendszer felé, amely lehetővé teszi a munkafolyamat hatékonyságának növelését és a konfigurációk szükség szerinti módosításának rugalmasságát. A különböző konfigurációk közötti könnyű váltás, egyszerűen újrakomponálás és a különböző megközelítések kipróbálása a kód kézi frissítése nélkül az egyik legfontosabb előnye egy ilyen rendszernek a gépi tanulási problémák megoldására, különösen a mély tanulással kapcsolatos feladatoknál, amikor a további rugalmasság annyira kritikus. .
Alekszandr Gorodnyickij egy gépi tanulási mérnök, aki mély ismeretekkel rendelkezik az ML, a Computer Vision és az Analytics területén. Több mint 3 éves tapasztalattal rendelkezem gépi tanulást alkalmazó termékek létrehozásában és fejlesztésében.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://www.kdnuggets.com/2023/03/hydra-configs-deep-learning-experiments.html?utm_source=rss&utm_medium=rss&utm_campaign=hydra-configs-for-deep-learning-experiments
- :is
- $ UP
- a
- képesség
- Rólunk
- megvalósítható
- hozzáadott
- További
- Előny
- AI
- Minden termék
- lehetővé teszi, hogy
- már
- analitika
- és a
- alkalmaz
- Alkalmazása
- megközelít
- megfelelő
- VANNAK
- AS
- elérhető
- elkerülése érdekében
- alapján
- BE
- válik
- előtt
- hogy
- között
- Bring
- by
- hívás
- kéri
- TUD
- eset
- központi
- Változások
- osztály
- osztályok
- kód
- összehasonlítani
- összehasonlítani különböző
- bonyolult
- összetevő
- áll
- számítógép
- Számítógépes látás
- Configuration
- konfigurációk
- építése
- Konténerek
- tudott
- létrehozása
- kritikai
- szokás
- dátum
- mély
- mély tanulás
- alapértelmezett
- meghatározó
- részletek
- Fejlesztés
- DICT
- különböző
- különböző formák
- Nem
- alatt
- dinamikus
- dinamikusan
- könnyebb
- könnyen
- hatékonyság
- hatékony
- lehetővé teszi
- mérnök
- Környezet
- különösen
- alapvető
- Eter (ETH)
- Még
- példa
- izgalmas
- Bontsa
- tapasztalat
- kifejezések
- gyorsabb
- Jellemzők
- kevés
- Fájlok
- Találjon
- zászlók
- Rugalmasság
- rugalmas
- következő
- A
- formák
- talált
- ból ből
- funkció
- funkcionalitás
- funkciók
- generáció
- adott
- ad
- Nyelvtan
- Fogantyúk
- Legyen
- itt
- motorháztető
- Hogyan
- http
- HTTPS
- i
- Illegális
- végre
- végrehajtás
- végre
- javuló
- in
- magában foglalja a
- példa
- helyette
- belső
- IT
- ITS
- KDnuggets
- Kulcs
- kulcsok
- tudás
- indítás
- tanulás
- könyvtár
- mint
- korlátozások
- határértékek
- vonal
- Lista
- kiszámításának
- le
- gép
- gépi tanulás
- Fő
- fenntartása
- csinál
- kezelése
- vezetés
- irányítási rendszer
- kézzel
- sok
- jel
- mód
- metrikus
- esetleg
- hiányzó
- ML
- modellek
- moduláris
- modul
- Modulok
- több
- hatékonyabb
- többszörös
- név
- nevek
- Szükség
- szükséges
- Új
- csomópont
- csomópontok
- tárgy
- objektumok
- of
- Ajánlatok
- on
- ONE
- Művelet
- operátor
- Alkalom
- opció
- érdekében
- Szervezett
- szervező
- Más
- másképp
- vázlat
- felülírás
- felülbíráló
- csomag
- paraméterek
- alkatrészek
- Elmúlt
- Múló
- ösvény
- csővezeték
- Hely
- Helyek
- Egyszerű
- Plató
- Platón adatintelligencia
- PlatoData
- lehetőségek
- lehetséges
- hatalom
- erős
- előnyös
- elsődleges
- primitív
- problémák
- folyamat
- Termékek
- program
- projektek
- biztosít
- cél
- célokra
- Piton
- hatótávolság
- gyors
- Regisztráció
- összefüggő
- TÖBBSZÖR
- cserélni
- helyébe
- kötelező
- Tudástár
- REST
- Visszatér
- Megtakarítás
- skálázható
- szolgál
- készlet
- kellene
- jelentősen
- Egyszerű
- egyszerűen
- So
- Megoldása
- néhány
- valahol
- stratégiák
- struktúra
- ilyen
- támogatás
- Támogatja
- feltételezett
- kapcsoló
- szintaxis
- rendszer
- feladatok
- sablon
- hogy
- A
- Őket
- dolgok
- Keresztül
- idő
- időigényes
- nak nek
- szerszám
- Képzések
- típusok
- alatt
- frissítése
- használ
- érték
- Értékek
- különféle
- keresztül
- látomás
- Út..
- JÓL
- ami
- széles
- Széleskörű
- lesz
- val vel
- nélkül
- munkafolyamat
- lenne
- ír
- év
- A te
- zephyrnet