הצג באתר TensorFlow.org | הפעל בגוגל קולאב | צפה במקור ב-GitHub | הורד מחברת |
TensorBoard ניתן להשתמש ישירות בתוך חוויות מחברת כגון Colab ו Jupyter . זה יכול להיות מועיל לשיתוף תוצאות, שילוב TensorBoard בזרימות עבודה קיימות ושימוש ב- TensorBoard מבלי להתקין שום דבר באופן מקומי.
להכין
התחל בהתקנת TF 2.0 וטעינת תוסף המחברת TensorBoard:
עבור משתמשי Jupyter: אם התקנת Jupyter ו TensorBoard לאותו virtualenv, אז אתה צריך להיות טוב ללכת. אם אתה משתמש התקנה מסובכת יותר, כמו התקנת Jupyter עולמית גרעינים עבור סביבות שונות CONDA / virtualenv, אז אתה חייב להבטיח כי tensorboard
בינארי הוא על שלך PATH
בתוך ההקשר מחברת Jupyter. אחת הדרכים לעשות זאת היא לשנות את kernel_spec
שתתווסף של סביבת bin
ספרייה PATH
, כפי שמתואר כאן .
עבור משתמשים דוקרים: במקרה אתה מפעיל דוקר תמונה של שרת מחברת Jupyter באמצעות TensorFlow של לילי , יש צורך לחשוף לא רק את יציאת המחברת, אבל הנמל של TensorBoard. לפיכך, הפעל את המיכל עם הפקודה הבאה:
docker run -it -p 8888:8888 -p 6006:6006 \
tensorflow/tensorflow:nightly-py3-jupyter
היכן -p 6006
הוא יציאת ברירת המחדל של TensorBoard. זה יקצה לך יציאה להפעלת מופע אחד של TensorBoard. כדי לקבל מופעים במקביל, יש צורך להקצות יותר יציאות. כמו כן, להעביר --bind_all
כדי %tensorboard
לחשוף את היציאה מחוץ מיכל.
# Load the TensorBoard notebook extension
%load_ext tensorboard
ייבוא TensorFlow, תאריך ושעה ומערכת הפעלה:
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 callback:
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
כעת תוכל להציג לוחות מחוונים כגון סקלרים, גרפים, היסטוגרמות ואחרים. לוחות מחוונים מסוימים אינם זמינים עדיין ב-Colab (כגון תוסף הפרופיל).
%tensorboard
קסם יש בדיוק באותה מתכונת השבעה שורת הפקודה TensorBoard, אבל עם %
-sign מול זה.
אתה יכול גם להפעיל את 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
אתה יכול להשתמש tensorboard.notebook
API לשימוש מלא קצת יותר:
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)