ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

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

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

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

اقامة

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

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

يمكنك الآن عرض لوحات المعلومات مثل المقاييس والرسوم البيانية والرسوم البيانية وغيرها. بعض لوحات العدادات غير متوفرة بعد في 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 APIs لمزيد من التحكم:

 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)