TensorBoard Tutorial: TensorFlow grafvisualisering [Eksempel]
Hvad er TensorBoard?
TensorBoard er grรฆnsefladen, der bruges til at visualisere grafen og andre vรฆrktรธjer til at forstรฅ, fejlfinde og optimere modellen. Det er et vรฆrktรธj, der giver mรฅlinger og visualiseringer til workflow for maskinlรฆring. Det hjรฆlper med at spore mรฅlinger som tab og nรธjagtighed, visualisering af modelgrafer, projektindlejring ved lavere dimensionelle rum osv.
TensorFlow-grafvisualisering ved hjรฆlp af Tensorboard-eksempel
Billedet nedenfor kommer fra TensorBoard-grafen, du vil generere i denne TensorBoard-vejledning. Det er hovedpanelet:

Fra billedet nedenfor kan du se panelet med TensorBoard grafvisualisering. Panelet indeholder forskellige faner, som er knyttet til det informationsniveau, du tilfรธjer, nรฅr du kรธrer modellen.
- Skalarer: Vis forskellige nyttige oplysninger under modeltrรฆningen
- Grafer: Vis modellen
- Histogram: Vis vรฆgte med et histogram
- Distribution: Vis fordelingen af โโvรฆgten
- projektor: Vis Principal komponentanalyse og T-SNE-algoritme. Teknikken, der bruges til dimensionalitetsreduktion
I lรธbet af denne TensorBoard Tutorial vil du trรฆne en simpel dyb lรฆringsmodel. Du vil lรฆre, hvordan det fungerer i en fremtidig tutorial.
Hvis du ser pรฅ grafen, kan du forstรฅ, hvordan modellen fungerer.
- Sรฆt dataene i kรธ til modellen: Skub en mรฆngde data svarende til batchstรธrrelsen til modellen, dvs. Antal datafeed efter hver iteration
- Fรธr dataene til tensorerne
- Trรฆn modellen
- Vis antallet af batches under trรฆningen. Gem modellen pรฅ disken.
Den grundlรฆggende idรฉ bag tensorboard er, at neurale netvรฆrk kan vรฆre noget kendt som en sort boks, og vi har brug for et vรฆrktรธj til at inspicere, hvad der er inde i denne boks. Du kan forestille dig tensorboard som en lommelygte til at begynde at dykke ind i det neurale netvรฆrk.
Det hjรฆlper med at forstรฅ afhรฆngighederne mellem operationer, hvordan vรฆgten beregnes, viser tabsfunktionen og meget anden nyttig information. Nรฅr du samler alle disse stykker information, har du et fantastisk vรฆrktรธj til at fejlfinde og finde ud af, hvordan du kan forbedre modellen.
For at give dig en idรฉ om, hvor nyttig TensorBoard-grafen kan vรฆre, kan du se pรฅ billedet nedenfor:

Et neuralt netvรฆrk bestemmer, hvordan de forskellige "neuroner" skal forbindes, og hvor mange lag, fรธr modellen kan forudsige et udfald. Nรฅr du har defineret arkitekturen, skal du ikke kun trรฆne modellen, men ogsรฅ en metrik til at beregne nรธjagtigheden af โโforudsigelsen. Denne metrik omtales som en tabsfunktion. Mรฅlet er at minimere tabsfunktionen. Med andre ord betyder det, at modellen laver fรฆrre fejl. Alle maskinlรฆringsalgoritmer vil gentage beregningerne mange gange, indtil tabet nรฅr en fladere linje. For at minimere denne tabsfunktion skal du definere en indlรฆringshastighed. Det er den hastighed, du รธnsker, at modellen skal lรฆre. Hvis du sรฆtter en indlรฆringshastighed for hรธjt, nรฅr modellen ikke tid til at lรฆre noget. Dette er tilfรฆldet pรฅ billedet til venstre. Linjen bevรฆger sig op og ned, hvilket betyder, at modellen forudsiger med rent gรฆt resultatet. Billedet til hรธjre viser, at tabet falder over iteration, indtil kurven blev flad, hvilket betyder, at modellen fandt en lรธsning.
TensorBoard er et fantastisk vรฆrktรธj til at visualisere sรฅdanne metrics og fremhรฆve potentielle problemer. Det neurale netvรฆrk kan tage timer til uger, fรธr de finder en lรธsning. TensorBoard opdaterer metrics meget ofte. I dette tilfรฆlde behรธver du ikke vente til slutningen for at se, om modellen trรฆner korrekt. Du kan รฅbne TensorBoard for at tjekke, hvordan trรฆningen forlรธber, og foretage de nรธdvendige รฆndringer, hvis det er nรธdvendigt.
Hvordan bruger man TensorBoard?
I denne vejledning lรฆrer du, hvordan du รฅbner TensorBoard fra terminalen til MacOS og kommandolinjen TensorBoard for Windows.
Koden vil blive forklaret i en fremtidig tutorial, fokus her er pรฅ TensorBoard.
Fรธrst skal du importere de biblioteker, du vil bruge under trรฆningen
## Import the library import tensorflow as tf import numpy as np
Du opretter dataene. Det er en matrix med 10000 rรฆkker og 5 kolonner
X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape
Produktion
(10000, 5)
Koderne nedenfor transformerer dataene og skaber modellen.
Bemรฆrk, at indlรฆringshastigheden er lig med 0.1. Hvis du รฆndrer denne sats til en hรธjere vรฆrdi, vil modellen ikke finde en lรธsning. Dette er, hvad der skete i venstre side af ovenstรฅende billede.
I lรธbet af det meste af TensorFlow tutorials, vil du bruge TensorFlow-estimator. Dette er TensorFlow API, der indeholder alle de matematiske beregninger.
For at oprette logfilerne skal du angive stien. Dette gรธres med argumentet model_dir.
I TensorBoard-eksemplet nedenfor gemmer du modellen inde i arbejdsbiblioteket, dvs. hvor du gemmer notebook- eller pythonfilen. Inde i denne sti vil TensorFlow oprette en mappe kaldet train med et underordnet mappenavn linreg.
feature_columns = [
tf.feature_column.numeric_column('x', shape=X_train.shape[1:])]
DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns,
# Indicate where to store the log file
model_dir='train/linreg',
hidden_units=[500, 300],
optimizer=tf.train.ProximalAdagradOptimizer(
learning_rate=0.1,
l1_regularization_strength=0.001
)
)
Produktion
INFO:tensorflow:Using default config.
INFO:tensorflow:Using config: {'_model_dir': 'train/linreg', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x1818e63828>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}
Det sidste trin i dette TensorFlow visualiseringsgrafeksempel bestรฅr i at trรฆne modellen. Under uddannelsen skriver TensorFlow information i modelkataloget.
# Train the estimator
train_input = tf.estimator.inputs.numpy_input_fn(
x={"x": X_train},
y=y_train, shuffle=False,num_epochs=None)
DNN_reg.train(train_input,steps=3000)
Produktion
INFO:tensorflow:Calling model_fn. INFO:tensorflow:Done calling model_fn. INFO:tensorflow:Create CheckpointSaverHook. INFO:tensorflow:Graph was finalized. INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. INFO:tensorflow:Saving checkpoints for 1 into train/linreg/model.ckpt. INFO:tensorflow:loss = 40.060104, step = 1 INFO:tensorflow:global_step/sec: 197.061 INFO:tensorflow:loss = 10.62989, step = 101 (0.508 sec) INFO:tensorflow:global_step/sec: 172.487 INFO:tensorflow:loss = 11.255318, step = 201 (0.584 sec) INFO:tensorflow:global_step/sec: 193.295 INFO:tensorflow:loss = 10.604872, step = 301 (0.513 sec) INFO:tensorflow:global_step/sec: 175.378 INFO:tensorflow:loss = 10.090343, step = 401 (0.572 sec) INFO:tensorflow:global_step/sec: 209.737 INFO:tensorflow:loss = 10.057928, step = 501 (0.476 sec) INFO:tensorflow:global_step/sec: 171.646 INFO:tensorflow:loss = 10.460144, step = 601 (0.583 sec) INFO:tensorflow:global_step/sec: 192.269 INFO:tensorflow:loss = 10.529617, step = 701 (0.519 sec) INFO:tensorflow:global_step/sec: 198.264 INFO:tensorflow:loss = 9.100082, step = 801 (0.504 sec) INFO:tensorflow:global_step/sec: 226.842 INFO:tensorflow:loss = 10.485607, step = 901 (0.441 sec) INFO:tensorflow:global_step/sec: 152.929 INFO:tensorflow:loss = 10.052481, step = 1001 (0.655 sec) INFO:tensorflow:global_step/sec: 166.745 INFO:tensorflow:loss = 11.320213, step = 1101 (0.600 sec) INFO:tensorflow:global_step/sec: 161.854 INFO:tensorflow:loss = 9.603306, step = 1201 (0.619 sec) INFO:tensorflow:global_step/sec: 179.074 INFO:tensorflow:loss = 11.110269, step = 1301 (0.556 sec) INFO:tensorflow:global_step/sec: 202.776 INFO:tensorflow:loss = 11.929443, step = 1401 (0.494 sec) INFO:tensorflow:global_step/sec: 144.161 INFO:tensorflow:loss = 11.951693, step = 1501 (0.694 sec) INFO:tensorflow:global_step/sec: 154.144 INFO:tensorflow:loss = 8.620987, step = 1601 (0.649 sec) INFO:tensorflow:global_step/sec: 151.094 INFO:tensorflow:loss = 10.666125, step = 1701 (0.663 sec) INFO:tensorflow:global_step/sec: 193.644 INFO:tensorflow:loss = 11.0349865, step = 1801 (0.516 sec) INFO:tensorflow:global_step/sec: 189.707 INFO:tensorflow:loss = 9.860596, step = 1901 (0.526 sec) INFO:tensorflow:global_step/sec: 176.423 INFO:tensorflow:loss = 10.695, step = 2001 (0.567 sec) INFO:tensorflow:global_step/sec: 213.066 INFO:tensorflow:loss = 10.426752, step = 2101 (0.471 sec) INFO:tensorflow:global_step/sec: 220.975 INFO:tensorflow:loss = 10.594796, step = 2201 (0.452 sec) INFO:tensorflow:global_step/sec: 219.289 INFO:tensorflow:loss = 10.4212265, step = 2301 (0.456 sec) INFO:tensorflow:global_step/sec: 215.123 INFO:tensorflow:loss = 9.668612, step = 2401 (0.465 sec) INFO:tensorflow:global_step/sec: 175.65 INFO:tensorflow:loss = 10.009649, step = 2501 (0.569 sec) INFO:tensorflow:global_step/sec: 206.962 INFO:tensorflow:loss = 10.477722, step = 2601 (0.483 sec) INFO:tensorflow:global_step/sec: 229.627 INFO:tensorflow:loss = 9.877638, step = 2701 (0.435 sec) INFO:tensorflow:global_step/sec: 195.792 INFO:tensorflow:loss = 10.274586, step = 2801 (0.512 sec) INFO:tensorflow:global_step/sec: 176.803 INFO:tensorflow:loss = 10.061047, step = 2901 (0.566 sec) INFO:tensorflow:Saving checkpoints for 3000 into train/linreg/model.ckpt. INFO:tensorflow:Loss for final step: 10.73032. <tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1818e63630>
Til MacOS-brugere
Til Windows bruger
Du kan se disse oplysninger iPyTorch TensorBoard.
Nu hvor du har skrevet loghรฆndelser, kan du รฅbne Tensorboard. Tensorboard Keras kรธrer pรฅ port 6006 (Jupyter kรธrer pรฅ port 8888). Du kan bruge Terminal til MacOs-brugere eller Anaconda-prompt til Windows bruger.
Til MacOS-brugere
# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!
Notesbogen er gemt i stien /Users/Guru99/tuto_TF
Til Windows brugere
cd C:\Users\Admin\Anaconda3 activate hello-tf
Notesbogen er gemt i stien C:\Users\Admin\Anaconda3
For at starte Tensorboard kan du bruge denne kode
Til MacOS-brugere
tensorboard --logdir=./train/linreg
Til Windows brugere
tensorboard --logdir=.\train\linreg
Tensorboard er placeret i denne URL: http://localhost:6006
Det kan ogsรฅ vรฆre placeret pรฅ fรธlgende sted.
Kopier og indsรฆt URL'en i din yndlingsbrowser. Du bรธr se dette:
Bemรฆrk, at vi lรฆrer, hvordan man lรฆser grafen i vejledningen dedikeret til dyb lรฆring.
Hvis du ser noget som dette:
Det betyder, at Tensorboard ikke kan finde logfilen. Sรธrg for at pege cd'en til den rigtige sti, eller dobbelttjek om loghรฆndelsen er blevet oprettet. Hvis ikke, kรธr koden igen.
Hvis du vil lukke TensorBoard Tryk CTRL+C
Hattip: Tjek din anaconda-prompt for den aktuelle arbejdsmappe,
Logfilen skal oprettes pรฅ C:\Users\Admin
Resumรฉ
TensorBoard er et fantastisk vรฆrktรธj til at visualisere din model. Desuden vises mange mรฅlinger under trรฆningen, sรฅsom tab, nรธjagtighed eller vรฆgte.
For at aktivere Tensorboard skal du indstille stien til din fil:
cd /Users/Guru99/tuto_TF
Aktiver Tensorflows miljรธ
activate hello-tf
Start Tensorboard
tensorboard --logdir=.+ PATH







