דף זה תורגם על ידי Cloud Translation API.
Switch to English

שימוש ב TensorBoard במחברות מחברת

צפה ב TensorFlow.org הפעל ב- Google Colab צפה במקור ב- GitHub

ניתן להשתמש ב- TensorBoard ישירות במסגרת חוויות מחברות כמו Colab ו- Jupyter . זה יכול להועיל לשיתוף תוצאות, לשילוב TensorBoard בזרימות עבודה קיימות, ושימוש ב- TensorBoard מבלי להתקין דבר מקומי.

להכין

התחל בהתקנת TF 2.0 וטעינה שלוחה המחברת TensorBoard:

עבור משתמשי Jupyter: אם התקנת את Jupyter ו- TensorBoard באותו וירטואלי, אתה אמור להיות טוב ללכת. אם אתה משתמש בהתקנה מסובכת יותר, כמו התקנה גלובלית של Jupyter וגרעינים לסביבות שונות של קונדה / virtualenv, עליך להבטיח tensorboard של לוח tensorboard נמצא על ה- PATH שלך בתוך הקשר המחברת של Jupyter. אחת הדרכים לעשות זאת היא לשנות את kernel_spec כך kernel_spec את ספריית bin של הסביבה ל- PATH , כמתואר כאן .

אם אתה מפעיל תמונה של Docker של שרת Jupyter Notebook באמצעות הלילה של TensorFlow , יש צורך לחשוף לא רק את יציאת המחברת, אלא את היציאה של TensorBoard.

לפיכך, הפעל את המיכל עם הפקודה הבאה:

 docker run -it -p 8888:8888 -p 6006:6006 \
tensorflow/tensorflow:nightly-py3-jupyter 
 

כאשר -p 6006 הוא יציאת ברירת המחדל של TensorBoard. זה יקצה לך יציאה להפעלת מופע TensorBoard אחד. כדי שיהיו מקרים במקביל, יש להקצות יציאות נוספות.

 # Load the TensorBoard notebook extension
%load_ext tensorboard
 

ייבא TensorFlow, datetime ו- os:

 import tensorflow as tf
import datetime, os
 

TensorBoard במחברות

הורד את מערך הנתונים של FashionMNIST וקנה אותו בקנה מידה:

 fashion_mnist = tf.keras.datasets.fashion_mnist

(x_train, y_train),(x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
 
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step

צור מודל פשוט מאוד:

 def create_model():
  return tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
  ])
 

הרכבת הדגם באמצעות Keras וה- TensorBoard התקשרות:

 def train_model():
  
  model = create_model()
  model.compile(optimizer='adam',
                loss='sparse_categorical_crossentropy',
                metrics=['accuracy'])

  logdir = os.path.join("logs", datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
  tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1)

  model.fit(x=x_train, 
            y=y_train, 
            epochs=5, 
            validation_data=(x_test, y_test), 
            callbacks=[tensorboard_callback])

train_model()
 
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 182us/sample - loss: 0.4976 - accuracy: 0.8204 - val_loss: 0.4143 - val_accuracy: 0.8538
Epoch 2/5
60000/60000 [==============================] - 10s 174us/sample - loss: 0.3845 - accuracy: 0.8588 - val_loss: 0.3855 - val_accuracy: 0.8626
Epoch 3/5
60000/60000 [==============================] - 10s 175us/sample - loss: 0.3513 - accuracy: 0.8705 - val_loss: 0.3740 - val_accuracy: 0.8607
Epoch 4/5
60000/60000 [==============================] - 11s 177us/sample - loss: 0.3287 - accuracy: 0.8793 - val_loss: 0.3596 - val_accuracy: 0.8719
Epoch 5/5
60000/60000 [==============================] - 11s 178us/sample - loss: 0.3153 - accuracy: 0.8825 - val_loss: 0.3360 - val_accuracy: 0.8782

הפעל את TensorBoard במחברת באמצעות קסמים :

 %tensorboard --logdir logs
 

כעת תוכל להציג לוחות מחוונים כגון סקלרים, גרפים, היסטוגרמות ואחרים. כמה שלוחות מחוונים אינם זמינים עדיין בקולאב (כגון תוסף הפרופיל).

הקסם של %tensorboard בעל אותה פורמט בדיוק כמו הפקודה של שורת הפקודה TensorBoard, אך עם סימן % לפניו.

אתה יכול גם להתחיל את TensorBoard לפני אימונים כדי לפקח על זה בתהליך:

 %tensorboard --logdir logs
 

אותו תומך TensorBoard משמש לשימוש חוזר על ידי הוצאת אותה פקודה. אם נבחרה ספריית יומנים אחרת, תיפתח מופע חדש של TensorBoard. היציאות מנוהלות באופן אוטומטי.

התחל לאמן דגם חדש וצפה ב TensorBoard מתעדכן אוטומטית כל 30 שניות או רענן אותו עם הכפתור בצד ימין למעלה:

 train_model()
 
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 184us/sample - loss: 0.4968 - accuracy: 0.8223 - val_loss: 0.4216 - val_accuracy: 0.8481
Epoch 2/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3847 - accuracy: 0.8587 - val_loss: 0.4056 - val_accuracy: 0.8545
Epoch 3/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3495 - accuracy: 0.8727 - val_loss: 0.3600 - val_accuracy: 0.8700
Epoch 4/5
60000/60000 [==============================] - 11s 179us/sample - loss: 0.3282 - accuracy: 0.8795 - val_loss: 0.3636 - val_accuracy: 0.8694
Epoch 5/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3115 - accuracy: 0.8839 - val_loss: 0.3438 - val_accuracy: 0.8764

אתה יכול להשתמש בממשקי ה- API של tensorboard.notebook כדי לקבל קצת יותר שליטה:

 from tensorboard import notebook
notebook.list() # View open TensorBoard instances
 
Known TensorBoard instances:

  - port 6006: logdir logs (started 0:00:54 ago; pid 265)

 # Control TensorBoard display. If no port is provided, 
# the most recently launched TensorBoard is used
notebook.display(port=6006, height=1000)