استخدام لوحة TensorBoard في أجهزة الكمبيوتر المحمولة

عرض على TensorFlow.org تشغيل في Google Colab عرض المصدر على جيثب تحميل دفتر

TensorBoard يمكن استخدامها مباشرة في تجارب دفتر مثل Colab و Jupyter . يمكن أن يكون هذا مفيدًا لمشاركة النتائج ، ودمج TensorBoard في مهام سير العمل الحالية ، واستخدام TensorBoard دون تثبيت أي شيء محليًا.

يثبت

ابدأ بتثبيت TF 2.0 وتحميل ملحق الكمبيوتر المحمول TensorBoard:

للمستخدمين Jupyter: إذا كنت قد قمت بتثبيت Jupyter وTensorBoard في نفس virtualenv، ثم عليك أن تكون على ما يرام. إذا كنت تستخدم إعداد أكثر تعقيدا، مثل تثبيت Jupyter العالمي وحبات لمختلف كوندا / 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 و 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 في دفتر الملاحظات باستخدام magics :

%tensorboard --logdir logs

يمكنك الآن عرض لوحات المعلومات مثل المقاييس والرسوم البيانية والرسوم البيانية وغيرها. بعض لوحات المعلومات غير متوفرة بعد في Colab (مثل المكوِّن الإضافي للملف الشخصي).

و %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

يمكنك استخدام 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)