Οδηγός TensorBoard: Οπτικοποίηση γραφήματος TensorFlow [Παράδειγμα]
Τι είναι το TensorBoard;
TensorBoard είναι η διεπαφή που χρησιμοποιείται για την οπτικοποίηση του γραφήματος και άλλων εργαλείων για την κατανόηση, τον εντοπισμό σφαλμάτων και τη βελτιστοποίηση του μοντέλου. Είναι ένα εργαλείο που παρέχει μετρήσεις και απεικονίσεις για τη ροή εργασιών μηχανικής εκμάθησης. Βοηθά στην παρακολούθηση μετρήσεων όπως απώλεια και ακρίβεια, οπτικοποίηση γραφήματος μοντέλων, ενσωμάτωση έργου σε χώρους χαμηλότερων διαστάσεων κ.λπ.
Οπτικοποίηση γραφήματος TensorFlow χρησιμοποιώντας Παράδειγμα Tensorboard
Η παρακάτω εικόνα προέρχεται από το γράφημα TensorBoard που θα δημιουργήσετε σε αυτό το Οδηγό TensorBoard. Είναι ο κύριος πίνακας:

Από την παρακάτω εικόνα, μπορείτε να δείτε το πλαίσιο της οπτικοποίησης γραφήματος TensorBoard. Ο πίνακας περιέχει διαφορετικές καρτέλες, οι οποίες συνδέονται με το επίπεδο πληροφοριών που προσθέτετε όταν εκτελείτε το μοντέλο.
- Σκαλαράκια: Εμφάνιση διαφορετικών χρήσιμων πληροφοριών κατά την εκπαίδευση του μοντέλου
- Διαγράμματα: Δείξτε το μοντέλο
- Ιστόγραμμα: Εμφάνιση βαρών με ιστόγραμμα
- Διανομή: Εμφάνιση της κατανομής του βάρους
- Προβολέας: Εμφάνιση ανάλυσης κύριου στοιχείου και αλγόριθμου T-SNE. Η τεχνική που χρησιμοποιείται για τη μείωση διαστάσεων
Κατά τη διάρκεια αυτού του σεμιναρίου TensorBoard, θα εκπαιδεύσετε ένα απλό μοντέλο βαθιάς εκμάθησης. Θα μάθετε πώς λειτουργεί σε μελλοντικό σεμινάριο.
Αν κοιτάξετε το γράφημα, μπορείτε να καταλάβετε πώς λειτουργεί το μοντέλο.
- Τοποθετήστε τα δεδομένα στο μοντέλο: Ωθήστε στο μοντέλο ποσότητα δεδομένων ίση με το μέγεθος παρτίδας, π.χ. Αριθμός τροφοδοσίας δεδομένων μετά από κάθε επανάληψη
- Τροφοδοτήστε τα δεδομένα στους τανυστές
- Εκπαιδεύστε το μοντέλο
- Εμφανίστε τον αριθμό των παρτίδων κατά τη διάρκεια της εκπαίδευσης. Αποθηκεύστε το μοντέλο στο δίσκο.
Η βασική ιδέα πίσω από το tensorboard είναι ότι το νευρωνικό δίκτυο μπορεί να είναι κάτι γνωστό ως μαύρο κουτί και χρειαζόμαστε ένα εργαλείο για να επιθεωρήσουμε τι υπάρχει μέσα σε αυτό το κουτί. Μπορείτε να φανταστείτε το tensorboard ως φακό για να ξεκινήσετε την κατάδυση στο νευρωνικό δίκτυο.
Βοηθά στην κατανόηση των εξαρτήσεων μεταξύ των λειτουργιών, του τρόπου υπολογισμού των βαρών, εμφανίζει τη συνάρτηση απώλειας και πολλές άλλες χρήσιμες πληροφορίες. Όταν συγκεντρώνετε όλες αυτές τις πληροφορίες μαζί, έχετε ένα εξαιρετικό εργαλείο για να εντοπίσετε σφάλματα και να βρείτε πώς να βελτιώσετε το μοντέλο.
Για να σας δώσουμε μια ιδέα για το πόσο χρήσιμο μπορεί να είναι το γράφημα TensorBoard, δείτε την παρακάτω εικόνα:

Ένα νευρωνικό δίκτυο αποφασίζει πώς να συνδέσει τους διαφορετικούς «νευρώνες» και πόσα στρώματα προτού το μοντέλο μπορεί να προβλέψει ένα αποτέλεσμα. Αφού ορίσετε την αρχιτεκτονική, δεν χρειάζεται μόνο να εκπαιδεύσετε το μοντέλο αλλά και μια μέτρηση για τον υπολογισμό της ακρίβειας της πρόβλεψης. Αυτή η μέτρηση αναφέρεται ως α λειτουργία απώλειας. Ο στόχος είναι να ελαχιστοποιηθεί η συνάρτηση απώλειας. Με διαφορετικά λόγια, σημαίνει ότι το μοντέλο κάνει λιγότερα λάθη. Όλοι οι αλγόριθμοι μηχανικής μάθησης θα επαναλάβουν πολλές φορές τους υπολογισμούς μέχρι η απώλεια φτάσει σε πιο επίπεδη γραμμή. Για να ελαχιστοποιήσετε αυτή τη συνάρτηση απώλειας, πρέπει να ορίσετε α ποσοστό μάθησης. Είναι η ταχύτητα που θέλετε να μάθει το μοντέλο. Εάν ορίσετε ένα ποσοστό εκμάθησης πολύ υψηλό, το μοντέλο δεν έχει χρόνο να μάθει τίποτα. Αυτό συμβαίνει στην αριστερή εικόνα. Η γραμμή κινείται πάνω-κάτω, πράγμα που σημαίνει ότι το μοντέλο προβλέπει με καθαρή εικασία το αποτέλεσμα. Η εικόνα στα δεξιά δείχνει ότι η απώλεια μειώνεται με την επανάληψη μέχρι να ισοπεδωθεί η καμπύλη, που σημαίνει ότι το μοντέλο βρήκε μια λύση.
Το TensorBoard είναι ένα εξαιρετικό εργαλείο για την οπτικοποίηση τέτοιων μετρήσεων και την επισήμανση πιθανών προβλημάτων. Το νευρωνικό δίκτυο μπορεί να πάρει από ώρες έως εβδομάδες πριν βρει μια λύση. Το TensorBoard ενημερώνει πολύ συχνά τις μετρήσεις. Σε αυτήν την περίπτωση, δεν χρειάζεται να περιμένετε μέχρι το τέλος για να δείτε εάν το μοντέλο εκπαιδεύεται σωστά. Μπορείτε να ανοίξετε το TensorBoard για να ελέγξετε πώς πηγαίνει η εκπαίδευση και να κάνετε την κατάλληλη αλλαγή εάν είναι απαραίτητο.
Πώς να χρησιμοποιήσετε το TensorBoard;
Σε αυτό το σεμινάριο, θα μάθετε πώς να ανοίγετε το TensorBoard από το τερματικό για MacOS και τη γραμμή εντολών TensorBoard για Windows.
Ο κώδικας θα εξηγηθεί σε μελλοντικό σεμινάριο, η εστίαση εδώ είναι στο TensorBoard.
Αρχικά, πρέπει να εισαγάγετε τις βιβλιοθήκες που θα χρησιμοποιήσετε κατά τη διάρκεια της εκπαίδευσης
## Import the library import tensorflow as tf import numpy as np
Εσείς δημιουργείτε τα δεδομένα. Είναι ένας πίνακας 10000 σειρών και 5 στηλών
X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape
Παραγωγή
(10000, 5)
Οι παρακάτω κωδικοί μετασχηματίζουν τα δεδομένα και δημιουργούν το μοντέλο.
Σημειώστε ότι το ποσοστό εκμάθησης είναι ίσο με 0.1. Εάν αλλάξετε αυτό το ποσοστό σε υψηλότερη τιμή, το μοντέλο δεν θα βρει λύση. Αυτό συνέβη στην αριστερή πλευρά της παραπάνω εικόνας.
Κατά το μεγαλύτερο μέρος των Οδηγίες TensorFlow, θα χρησιμοποιήσετε τον εκτιμητή TensorFlow. Αυτό είναι το TensorFlow API που περιέχει όλους τους μαθηματικούς υπολογισμούς.
Για να δημιουργήσετε τα αρχεία καταγραφής, πρέπει να καθορίσετε τη διαδρομή. Αυτό γίνεται με το όρισμα model_dir.
Στο παρακάτω παράδειγμα TensorBoard, αποθηκεύετε το μοντέλο μέσα στον κατάλογο εργασίας, δηλαδή, όπου αποθηκεύετε το σημειωματάριο ή το αρχείο python. Μέσα σε αυτή τη διαδρομή, το TensorFlow θα δημιουργήσει έναν φάκελο που ονομάζεται train με όνομα θυγατρικού φακέλου 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
)
)
Παραγωγή
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}
Το τελευταίο βήμα αυτού του παραδείγματος γραφήματος οπτικοποίησης TensorFlow συνίσταται στην εκπαίδευση του μοντέλου. Κατά τη διάρκεια της εκπαίδευσης, το TensorFlow γράφει πληροφορίες στον κατάλογο του μοντέλου.
# 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)
Παραγωγή
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>
Για χρήστη MacOS
Για Windows χρήστη
Μπορείτε να δείτε αυτές τις πληροφορίες στοPyTorch TensorBoard.
Τώρα που έχετε γράψει τα συμβάντα καταγραφής, μπορείτε να ανοίξετε το Tensorboard. Το Tensorboard Keras τρέχει στη θύρα 6006 (Jupyter τρέχει στη θύρα 8888). Μπορείτε να χρησιμοποιήσετε το Τερματικό για χρήστες MacO ή το αίτημα για το Anaconda Windows χρήστη.
Για χρήστη MacOS
# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!
Το σημειωματάριο αποθηκεύεται στη διαδρομή /Users/Guru99/tuto_TF
Για Windows Χρήστες
cd C:\Users\Admin\Anaconda3 activate hello-tf
Το σημειωματάριο αποθηκεύεται στη διαδρομή C:\Users\Admin\Anaconda3
Για να εκκινήσετε το Tensorboard, μπορείτε να χρησιμοποιήσετε αυτόν τον κώδικα
Για χρήστη MacOS
tensorboard --logdir=./train/linreg
Για Windows Χρήστες
tensorboard --logdir=.\train\linreg
Το Tensorboard βρίσκεται σε αυτό το URL: http://localhost:6006
Θα μπορούσε επίσης να βρίσκεται στην παρακάτω τοποθεσία.
Αντιγράψτε και επικολλήστε τη διεύθυνση URL στο αγαπημένο σας πρόγραμμα περιήγησης. Θα πρέπει να δείτε αυτό:
Σημειώστε ότι, θα μάθουμε πώς να διαβάζουμε το γράφημα στο σεμινάριο αφιερωμένο στο βαθιά μάθηση.
Αν δείτε κάτι σαν αυτό:
Σημαίνει ότι το Tensorboard δεν μπορεί να βρει το αρχείο καταγραφής. Βεβαιωθείτε ότι δείξατε το cd στη σωστή διαδρομή ή ελέγξτε ξανά αν έχει δημιουργηθεί το συμβάν καταγραφής. Εάν όχι, εκτελέστε ξανά τον κωδικό.
Εάν θέλετε να κλείσετε το TensorBoard, πατήστε CTRL+C
Συμβουλή για το καπέλο: Ελέγξτε την προτροπή του anaconda για τον τρέχοντα κατάλογο εργασίας,
Το αρχείο καταγραφής πρέπει να δημιουργηθεί στη διεύθυνση C:\Users\Admin
Περίληψη
Το TensorBoard είναι ένα εξαιρετικό εργαλείο για να οπτικοποιήσετε το μοντέλο σας. Εξάλλου, πολλές μετρήσεις εμφανίζονται κατά τη διάρκεια της προπόνησης, όπως η απώλεια, η ακρίβεια ή τα βάρη.
Για να ενεργοποιήσετε το Tensorboard, πρέπει να ορίσετε τη διαδρομή του αρχείου σας:
cd /Users/Guru99/tuto_TF
Ενεργοποιήστε το περιβάλλον του Tensorflow
activate hello-tf
Εκκινήστε το Tensorboard
tensorboard --logdir=.+ PATH







