TensorBoard-veiledning: TensorFlow-grafvisualisering [Eksempel]
Hva er TensorBoard?
TensorBoard er grensesnittet som brukes til รฅ visualisere grafen og andre verktรธy for รฅ forstรฅ, feilsรธke og optimalisere modellen. Det er et verktรธy som gir mรฅlinger og visualiseringer for arbeidsflyt for maskinlรฆring. Det hjelper รฅ spore beregninger som tap og nรธyaktighet, visualisering av modellgrafer, prosjektinnbygging ved lavere dimensjonale rom, etc.
TensorFlow-grafvisualisering ved hjelp av Tensorboard-eksempel
Bildet nedenfor kommer fra TensorBoard-grafen du vil generere i denne TensorBoard-veiledningen. Det er hovedpanelet:

Fra bildet nedenfor kan du se panelet med TensorBoard grafvisualisering. Panelet inneholder forskjellige faner, som er knyttet til informasjonsnivรฅet du legger til nรฅr du kjรธrer modellen.
- Skalarer: Vis forskjellig nyttig informasjon under modellopplรฆringen
- grafer: Vis modellen
- histogram: Vis vekter med et histogram
- Distribusjon: Vis fordelingen av vekten
- Projektor: Vis hovedkomponentanalyse og T-SNE-algoritme. Teknikken som brukes for reduksjon av dimensjonalitet
I lรธpet av denne TensorBoard-veiledningen vil du trene en enkel dyplรฆringsmodell. Du vil lรฆre hvordan det fungerer i en fremtidig opplรฆring.
Hvis du ser pรฅ grafen, kan du forstรฅ hvordan modellen fungerer.
- Sett dataene i kรธ til modellen: Send en mengde data som tilsvarer batchstรธrrelsen til modellen, dvs. Antall datainnmatinger etter hver iterasjon
- Mate dataene til tensorene
- Tren modellen
- Vis antall partier under treningen. Lagre modellen pรฅ disken.
Den grunnleggende ideen bak tensorboard er at nevrale nettverk kan vรฆre noe kjent som en svart boks, og vi trenger et verktรธy for รฅ inspisere hva som er inne i denne boksen. Du kan forestille deg tensorboard som en lommelykt for รฅ begynne รฅ dykke inn i det nevrale nettverket.
Det hjelper รฅ forstรฅ avhengighetene mellom operasjoner, hvordan vektene beregnes, viser tapsfunksjonen og mye annen nyttig informasjon. Nรฅr du samler all denne informasjonen, har du et flott verktรธy for รฅ feilsรธke og finne ut hvordan du kan forbedre modellen.
For รฅ gi deg en ide om hvor nyttig TensorBoard-grafen kan vรฆre, se pรฅ bildet nedenfor:

Et nevralt nettverk bestemmer hvordan de forskjellige "nevronene" skal kobles sammen og hvor mange lag fรธr modellen kan forutsi et utfall. Nรฅr du har definert arkitekturen, trenger du ikke bare รฅ trene modellen, men ogsรฅ en metrikk for รฅ beregne nรธyaktigheten til prediksjonen. Denne metrikken omtales som en tapsfunksjon. Mรฅlet er รฅ minimere tapsfunksjonen. Med andre ord betyr det at modellen gjรธr fรฆrre feil. Alle maskinlรฆringsalgoritmer vil gjenta mange ganger beregningene til tapet nรฅr en flatere linje. For รฅ minimere denne tapsfunksjonen, mรฅ du definere en lรฆringshastighet. Det er hastigheten du vil at modellen skal lรฆre. Setter du en lรฆringsrate for hรธyt, rekker ikke modellen รฅ lรฆre noe. Dette er tilfellet pรฅ bildet til venstre. Linjen beveger seg opp og ned, noe som betyr at modellen forutsier med ren gjetning utfallet. Bildet til hรธyre viser at tapet avtar over iterasjon til kurven ble flate, noe som betyr at modellen fant en lรธsning.
TensorBoard er et flott verktรธy for รฅ visualisere slike beregninger og fremheve potensielle problemer. Det nevrale nettverket kan ta timer til uker fรธr de finner en lรธsning. TensorBoard oppdaterer beregningene veldig ofte. I dette tilfellet trenger du ikke vente til slutten for รฅ se om modellen trener riktig. Du kan รฅpne TensorBoard for รฅ sjekke hvordan treningen gรฅr og gjรธre den nรธdvendige endringen om nรธdvendig.
Hvordan bruke TensorBoard?
I denne opplรฆringen lรฆrer du hvordan du รฅpner TensorBoard fra terminalen for MacOS og kommandolinjen TensorBoard for Windows.
Koden vil bli forklart i en fremtidig opplรฆring, fokus her er pรฅ TensorBoard.
Fรธrst mรฅ du importere bibliotekene du skal bruke under opplรฆringen
## Import the library import tensorflow as tf import numpy as np
Du lager dataene. Det er en matrise med 10000 5 rader og XNUMX kolonner
X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape
Produksjon
(10000, 5)
Kodene nedenfor transformerer dataene og lager modellen.
Merk at lรฆringsraten er lik 0.1. Hvis du endrer denne satsen til en hรธyere verdi, vil ikke modellen finne en lรธsning. Dette er hva som skjedde pรฅ venstre side av bildet over.
I lรธpet av det meste av TensorFlow-veiledninger, vil du bruke TensorFlow-estimator. Dette er TensorFlow API som inneholder alle de matematiske beregningene.
For รฅ lage loggfilene mรฅ du spesifisere banen. Dette gjรธres med argumentet model_dir.
I TensorBoard-eksemplet nedenfor lagrer du modellen inne i arbeidskatalogen, dvs. der du lagrer notatboken eller pythonfilen. Inne i denne banen vil TensorFlow opprette en mappe kalt tog med et undermappenavn 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
)
)
Produksjon
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 siste trinnet i dette TensorFlow-visualiseringsgrafeksemplet bestรฅr i รฅ trene modellen. Under opplรฆringen skriver TensorFlow informasjon i modellkatalogen.
# 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)
Produksjon
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>
For MacOS-brukere
Til Windows bruker
Du kan se denne informasjonen iPyTorch TensorBoard.
Nรฅ som du har skrevet logghendelsene, kan du รฅpne Tensorboard. Tensorboard Keras kjรธrer pรฅ port 6006 (Jupyter kjรธrer pรฅ port 8888). Du kan bruke Terminal for MacOs-brukere eller Anaconda-ledeteksten for Windows bruker.
For MacOS-brukere
# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!
Notatboken er lagret i banen /Users/Guru99/tuto_TF
Til Windows Brukere
cd C:\Users\Admin\Anaconda3 activate hello-tf
Notatboken er lagret i banen C:\Users\Admin\Anaconda3
For รฅ starte Tensorboard kan du bruke denne koden
For MacOS-brukere
tensorboard --logdir=./train/linreg
Til Windows Brukere
tensorboard --logdir=.\train\linreg
Tensorboard ligger i denne URLen: http://localhost:6006
Det kan ogsรฅ vรฆre plassert pรฅ fรธlgende sted.
Kopier og lim inn URL-en i favorittnettleseren din. Du bรธr se dette:
Merk at vi vil lรฆre hvordan du leser grafen i opplรฆringen dedikert til dyp lรฆring.
Hvis du ser noe slikt:
Det betyr at Tensorboard ikke kan finne loggfilen. Pass pรฅ at du peker CD-en til riktig bane eller dobbeltsjekk om logghendelsen har opprettet. Hvis ikke, kjรธr koden pรฅ nytt.
Hvis du vil lukke TensorBoard, trykk CTRL+C
Hatttips: Sjekk anaconda-forespรธrselen din for gjeldende arbeidskatalog,
Loggfilen skal opprettes pรฅ C:\Users\Admin
Sammendrag
TensorBoard er et flott verktรธy for รฅ visualisere modellen din. Dessuten vises mange beregninger under treningen, for eksempel tap, nรธyaktighet eller vekter.
For รฅ aktivere Tensorboard mรฅ du angi banen til filen din:
cd /Users/Guru99/tuto_TF
Aktiver Tensorflows miljรธ
activate hello-tf
Start Tensorboard
tensorboard --logdir=.+ PATH







