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
Oppsummering
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