TensorBoard
A TensorBoard a TensorFlow, a PyTorch, a Face Transformers és más gépi tanulási programok hibakereséséhez, optimalizálásához és megértéséhez használható vizualizációs eszközök csomagja.
A TensorBoard használata
A TensorBoard indítása az Azure Databricksben nem különbözik attól, hogy a helyi számítógépen egy Jupyter-jegyzetfüzeten indítja el.
Töltse be a
%tensorboard
magic parancsot, és definiálja a naplókönyvtárat.%load_ext tensorboard experiment_log_dir = <log-directory>
Hívja meg a
%tensorboard
varázsparancsot.%tensorboard --logdir $experiment_log_dir
A TensorBoard-kiszolgáló elindítja és megjeleníti a felhasználói felületet a jegyzetfüzetben. Emellett egy hivatkozást is tartalmaz a TensorBoard új lapon való megnyitásához.
Az alábbi képernyőképen egy feltöltött naplókönyvtárban elindított TensorBoard felhasználói felület látható.
A TensorBoardot közvetlenül a TensorBoard jegyzetfüzetmoduljával is elindíthatja.
from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))
TensorBoard-naplók és -címtárak
A TensorBoard a TensorBoard visszahívásai és függvényei által létrehozott naplók olvasásával jeleníti meg a gépi tanulási programokat a TensorBoardban vagy a PyTorchban. Más gépi tanulási kódtárak naplóinak létrehozásához közvetlenül is írhat naplókat TensorFlow-fájlírók használatával (lásd a Modul: tf.summary for TensorFlow 2.x modult, és tekintse meg a tf.compat.v1.summary modult a TensorFlow 1.x régebbi API-jának esetében).
Annak érdekében, hogy a kísérletnaplók megbízhatóan legyenek tárolva, a Databricks azt javasolja, hogy a rövid élettartamú fürt fájlrendszere helyett a felhőbeli tárolóba írja a naplókat. Minden kísérlethez indítsa el a TensorBoardot egy egyedi könyvtárban. A naplókat létrehozó kísérletben a gépi tanulási kód minden egyes futtatásához állítsa a TensorBoard visszahívását vagy fájlíróját úgy, hogy a kísérlet könyvtárának alkönyvtárába írjon. Így a TensorBoard felhasználói felületén lévő adatok futtatásokra lesznek elválasztva.
Olvassa el a Hivatalos TensorBoard dokumentációt a TensorBoard használatának első lépéseihez a gépi tanulási program adatainak naplózásához.
TensorBoard-folyamatok kezelése
Az Azure Databricks-jegyzetfüzetben elindított TensorBoard-folyamatok nem fejeződnek be a jegyzetfüzet leválasztásakor vagy a REPL újraindításakor (például a jegyzetfüzet állapotának törlésekor). A TensorBoard-folyamat manuális leállításához küldjön neki egy felmondási jelet a következő használatával %sh kill -15 pid
: . A helytelenül megölt TensorBoard-folyamatok megsérülhetnek notebook.list()
.
A fürtön jelenleg futó TensorBoard-kiszolgálók listázásához a megfelelő naplókönyvtárakkal és folyamatazonosítókkal együtt futtassa notebook.list()
a TensorBoard jegyzetfüzetmodulból.
Ismert problémák
- A beágyazott TensorBoard felhasználói felülete egy iframe-ben található. A böngésző biztonsági funkciói megakadályozzák a felhasználói felületen belüli külső hivatkozások működését, hacsak nem nyitja meg a hivatkozást egy új lapon.
- A
--window_title
TensorBoard lehetősége felülbírálásra kerül az Azure Databricksben. - Alapértelmezés szerint a TensorBoard megvizsgálja a porttartományt, hogy kiválasztja a meghallgatandó portot. Ha túl sok TensorBoard-folyamat fut a fürtön, előfordulhat, hogy a porttartomány összes portja nem érhető el. Ezt a korlátozást megkerülheti egy portszám argumentummal való
--port
megadásával. A megadott portnak 6006 és 6106 között kell lennie. - Ahhoz, hogy a letöltési hivatkozások működjenek, meg kell nyitnia a TensorBoardot egy lapon.
- A TensorBoard 1.15.0 használatakor a Projektor lap üres. Áthidaló megoldásként, ha közvetlenül meg szeretné látogatni a projektor oldalát, lecserélheti
#projector
az URL-címet a következőredata/plugin/projector/projector_binary.html
: . - A TensorBoard 2.4.0-s verziójának ismert hibája hatással lehet a TensorBoard renderelésére a frissítéskor.
- Ha a TensorBoardhoz kapcsolódó adatokat naplóz dbFS-re vagy UC-kötetekre, akkor a következőhöz hasonló
No dashboards are active for the current data set
hibaüzenet jelenhet meg. A hiba elhárításához ajánlott meghívniwriter.flush()
éswriter.close()
az adatok naplózásátwriter
követően használni. Ez biztosítja, hogy az összes naplózott adat megfelelően meg legyen írva, és a TensorBoard számára elérhető legyen a rendereléshez.