Vodič za TensorBoard: Vizualizacija grafikona TensorFlow [Primjer]
Što je TensorBoard?
TensorBoard je sučelje koje se koristi za vizualizaciju grafikona i druge alate za razumijevanje, otklanjanje pogrešaka i optimizaciju modela. To je alat koji pruža mjerenja i vizualizacije za tijek rada strojnog učenja. Pomaže u praćenju metrika kao što su gubitak i točnost, vizualizacija grafikona modela, ugrađivanje projekta u nižedimenzionalne prostore itd.
TensorFlow Graph Vizualizacija pomoću Tensorboard primjera
Slika u nastavku dolazi iz TensorBoard grafikona koji ćete generirati u ovom vodiču za TensorBoard. To je glavna ploča:

Na donjoj slici možete vidjeti panel vizualizacije TensorBoard grafikona. Ploča sadrži različite kartice koje su povezane s razinom informacija koje dodajete kada pokrećete model.
- Skalari: Pokažite različite korisne informacije tijekom obuke modela
- Grafovi: Pokažite model
- Histogram: Prikaz težine s histogramom
- Distribucija: Prikaz raspodjele težine
- Projektor: Prikaži analizu glavne komponente i T-SNE algoritam. Tehnika koja se koristi za smanjenje dimenzionalnosti
Tijekom ovog vodiča za TensorBoard trenirat ćete jednostavan model dubokog učenja. Naučit ćete kako to funkcionira u budućem vodiču.
Ako pogledate grafikon, možete shvatiti kako model radi.
- Stavite podatke u red čekanja u model: gurnite količinu podataka jednaku veličini paketa u model, tj. broj feedova podataka nakon svake iteracije
- Ubacite podatke u Tenzore
- Uvježbajte model
- Prikažite broj serija tijekom treninga. Spremite model na disk.
Osnovna ideja koja stoji iza tensorboarda je da neuronska mreža može biti nešto što je poznato kao crna kutija i potreban nam je alat za pregled onoga što je unutar te kutije. Tensorboard možete zamisliti kao svjetiljku za početak ronjenja u neuronsku mrežu.
Pomaže u razumijevanju ovisnosti između operacija, kako se izračunavaju težine, prikazuje funkciju gubitka i mnoge druge korisne informacije. Kada objedinite sve ove informacije, imate sjajan alat za otklanjanje pogrešaka i pronalaženje načina poboljšanja modela.
Da biste dobili ideju o tome koliko TensorBoard graf može biti koristan, pogledajte sliku ispod:
Neuronska mreža odlučuje kako povezati različite "neurone" i koliko slojeva prije nego što model može predvidjeti ishod. Nakon što ste definirali arhitekturu, ne samo da trebate uvježbati model, već i metriku za izračunavanje točnosti predviđanja. Ova metrika se naziva a funkcija gubitka. Cilj je minimizirati funkciju gubitka. Drugim riječima, to znači da model čini manje pogrešaka. Svi algoritmi strojnog učenja ponavljat će izračune mnogo puta dok gubitak ne dosegne nižu liniju. Da biste minimizirali ovu funkciju gubitka, trebate definirati a stopa učenja. To je brzina koju želite da model nauči. Ako postavite previsoku stopu učenja, model nema vremena ništa naučiti. Ovo je slučaj na lijevoj slici. Crta se pomiče gore-dolje, što znači da model čistom pretpostavkom predviđa ishod. Slika desno pokazuje da se gubitak smanjuje tijekom iteracije sve dok se krivulja ne izravna, što znači da je model pronašao rješenje.
TensorBoard je izvrstan alat za vizualizaciju takvih metrika i isticanje potencijalnih problema. Neuronskoj mreži mogu proći sati do tjedana prije nego što pronađu rješenje. TensorBoard vrlo često ažurira metriku. U ovom slučaju ne morate čekati do kraja da biste vidjeli trenira li model ispravno. Možete otvoriti TensorBoard da provjerite kako se odvija obuka i napravite odgovarajuću promjenu ako je potrebno.
Kako koristiti TensorBoard?
U ovom vodiču naučit ćete kako otvoriti TensorBoard s terminala za MacOS i naredbenog retka TensorBoard za Windows.
Kod će biti objašnjen u budućem vodiču, ovdje je fokus na TensorBoardu.
Prvo morate uvesti biblioteke koje ćete koristiti tijekom obuke
## Import the library import tensorflow as tf import numpy as np
Vi stvarate podatke. To je niz od 10000 5 redaka i XNUMX stupaca
X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape
Izlaz
(10000, 5)
Kodovi u nastavku transformiraju podatke i stvaraju model.
Imajte na umu da je stopa učenja jednaka 0.1. Ako ovu stopu promijenite na višu vrijednost, model neće pronaći rješenje. Ovo se dogodilo na lijevoj strani gornje slike.
Tijekom većine TensorFlow vodiči, koristit ćete TensorFlow estimator. Ovo je TensorFlow API koji sadrži sve matematičke izračune.
Da biste stvorili datoteke dnevnika, trebate navesti stazu. To se radi pomoću argumenta model_dir.
U primjeru TensorBoarda u nastavku, pohranjujete model unutar radnog direktorija, tj. gdje pohranjujete bilježnicu ili python datoteku. Unutar ove staze, TensorFlow će stvoriti mapu pod nazivom train s podređenom mapom pod nazivom 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 ) )
Izlaz
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}
Posljednji korak ovog primjera grafa vizualizacije TensorFlow sastoji se od obuke modela. Tijekom obuke TensorFlow upisuje informacije u direktorij modela.
# 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)
Izlaz
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>
Za korisnika MacOS-a
Za Windows korisnik
Ove informacije možete vidjeti uPyTorch TensorBoard.
Sada kada imate zapisane događaje u dnevniku, možete otvoriti Tensorboard. Tensorboard Keras radi na portu 6006 (Jupyter radi na portu 8888). Možete koristiti Terminal za MacOs korisnike ili Anaconda prompt za Windows korisnik.
Za korisnika MacOS-a
# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!
Bilježnica je pohranjena u stazi /Users/Guru99/tuto_TF
Za Windows Korisnici
cd C:\Users\Admin\Anaconda3 activate hello-tf
Bilježnica je pohranjena na putu C:\Users\Admin\Anaconda3
Za pokretanje Tensorboarda, možete koristiti ovaj kod
Za korisnika MacOS-a
tensorboard --logdir=./train/linreg
Za Windows Korisnici
tensorboard --logdir=.\train\linreg
Tensorboard se nalazi na ovom URL-u: http://localhost:6006
Također se može nalaziti na sljedećoj lokaciji.
Kopirajte i zalijepite URL u svoj omiljeni preglednik. Trebali biste vidjeti ovo:
Imajte na umu da ćemo naučiti kako čitati graf u uputama posvećenim duboko učenje.
Ako vidite nešto poput ovoga:
To znači da Tensorboard ne može pronaći log datoteku. Provjerite jeste li usmjerili cd na pravi put ili još jednom provjerite je li kreiran događaj dnevnika. Ako nije, ponovno pokrenite kôd.
Ako želite zatvoriti TensorBoard, pritisnite CTRL+C
Savjet za šešir: provjerite svoj anaconda prompt za trenutni radni direktorij,
Dnevnik bi trebao biti kreiran na C:\Users\Admin
Rezime
TensorBoard je izvrstan alat za vizualizaciju vašeg modela. Osim toga, mnoge metrike se prikazuju tijekom treninga, kao što su gubitak, točnost ili težine.
Da biste aktivirali Tensorboard, morate postaviti putanju vaše datoteke:
cd /Users/Guru99/tuto_TF
Aktivirajte Tensorflow okruženje
activate hello-tf
Pokrenite Tensorboard
tensorboard --logdir=.+ PATH