البرنامج التعليمي لـ TensorBoard: تصور الرسم البياني TensorFlow [مثال]

ما هو TensorBoard؟

TensorBoard هي الواجهة المستخدمة لتصور الرسم البياني والأدوات الأخرى لفهم النموذج وتصحيح أخطائه وتحسينه. إنها أداة توفر قياسات وتصورات لسير عمل التعلم الآلي. فهو يساعد على تتبع المقاييس مثل الخسارة والدقة، وتصور الرسم البياني النموذجي، وتضمين المشروع في المساحات ذات الأبعاد المنخفضة، وما إلى ذلك.

تصور الرسم البياني TensorFlow باستخدام مثال Tensorboard

الصورة أدناه تأتي من الرسم البياني TensorBoard الذي ستقوم بإنشائه في هذا البرنامج التعليمي TensorBoard. وهي اللوحة الرئيسية:

تصور الرسم البياني TensorFlow
تصور الرسم البياني TensorFlow

من الصورة أدناه، يمكنك رؤية لوحة تصور الرسم البياني TensorBoard. تحتوي اللوحة على علامات تبويب مختلفة مرتبطة بمستوى المعلومات التي تضيفها عند تشغيل النموذج.

الرسوم البيانية TensorBoard

الرسوم البيانية TensorBoard
  • الندوب: عرض معلومات مفيدة مختلفة أثناء التدريب على النموذج
  • الرسوم البيانية: اعرض النموذج
  • الرسم البياني: عرض الأوزان مع الرسم البياني
  • التوزيع: عرض توزيع الوزن
  • العارض: عرض تحليل المكون الرئيسي وخوارزمية T-SNE. التقنية المستخدمة لتقليل الأبعاد

خلال هذا البرنامج التعليمي لـ TensorBoard، سوف تقوم بتدريب نموذج بسيط للتعلم العميق. سوف تتعلم كيف يعمل في البرنامج التعليمي في المستقبل.

إذا نظرت إلى الرسم البياني، يمكنك فهم كيفية عمل النموذج.

  1. إدراج البيانات في النموذج: ادفع كمية من البيانات مساوية لحجم الدُفعة إلى النموذج، أي عدد تغذية البيانات بعد كل تكرار
  2. قم بتغذية البيانات إلى Tensors
  3. درب النموذج
  4. عرض عدد الدفعات أثناء التدريب. احفظ النموذج على القرص.

تصور الرسم البياني TensorFlow باستخدام مثال Tensorboard

الفكرة الأساسية وراء Tensorboard هي أن الشبكة العصبية يمكن أن تكون معروفة باسم الأسود box ونحن بحاجة إلى أداة لفحص ما بداخل هذا box. يمكنك أن تتخيل لوحة الشد كمصباح كهربائي لبدء الغوص في الشبكة العصبية.

فهو يساعد على فهم التبعيات بين العمليات، وكيفية حساب الأوزان، ويعرض دالة الخسارة والكثير من المعلومات المفيدة الأخرى. عندما تجمع كل هذه المعلومات معًا، يكون لديك أداة رائعة لتصحيح الأخطاء والعثور على كيفية تحسين النموذج.

لإعطائك فكرة عن مدى فائدة الرسم البياني TensorBoard، انظر إلى الصورة أدناه:

الرسوم البيانية TensorBoard
الرسم البياني للوحة TensorBoard

تقرر الشبكة العصبية كيفية ربط "الخلايا العصبية" المختلفة وعدد الطبقات قبل أن يتمكن النموذج من التنبؤ بالنتيجة. بمجرد تحديد archiفي الواقع، لا تحتاج إلى تدريب النموذج فحسب، بل تحتاج أيضًا إلى مقاييس لحساب دقة التنبؤ. ويشار إلى هذا المقياس بـ أ فقدان وظيفة. الهدف هو تقليل وظيفة الخسارة. وبعبارة أخرى، فهذا يعني أن النموذج يرتكب أخطاء أقل. ستقوم جميع خوارزميات التعلم الآلي بتكرار العمليات الحسابية عدة مرات حتى تصل الخسارة إلى خط مسطح. لتقليل وظيفة الخسارة هذه، تحتاج إلى تحديد أ معدل التعليم. إنها السرعة التي تريد أن يتعلمها النموذج. إذا قمت بتعيين معدل تعلم مرتفع جدًا، فلن يكون لدى النموذج الوقت لتعلم أي شيء. وهذا هو الحال في الصورة اليسرى. يتحرك الخط لأعلى ولأسفل، مما يعني أن النموذج يتنبأ بالنتيجة بتخمين خالص. توضح الصورة الموجودة على اليمين أن الخسارة تتناقص مع التكرار حتى يصبح المنحنى مسطحًا، مما يعني أن النموذج وجد حلاً.

تعد 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 المستخدم

البرنامج التعليمي لـ TensorBoard MacOS مستخدم

في حالة Windows المستخدم

البرنامج التعليمي لـ TensorBoard Windows مستخدم

يمكنك رؤية هذه المعلومات فيPyTorch TensorBoard.

الآن بعد أن قمت بكتابة أحداث السجل، يمكنك فتح Tensorboard. يعمل Tensorboard Keras على المنفذ 6006 (Jupyter يعمل على المنفذ 8888). يمكنك استخدام المحطة ل MacOs المستخدمين أو مطالبة أناكوندا 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

يمكن أن يكون موجودًا أيضًا في following الموقع.

استخدم TensorBoard

انسخ عنوان URL والصقه في متصفحك المفضل. يجب أن ترى هذا:

لاحظ أننا سنتعلم كيفية قراءة الرسم البياني في البرنامج التعليمي المخصص لـ التعلم العميق.

استخدم TensorBoard

إذا رأيت شيئًا مثل هذا:

استخدم TensorBoard

وهذا يعني أن Tensorboard لا يمكنه العثور على ملف السجل. تأكد من توجيه القرص المضغوط إلى المسار الصحيح أو double تحقق مما إذا كان قد تم إنشاء حدث السجل. إذا لم يكن الأمر كذلك، أعد تشغيل التعليمات البرمجية.

إذا كنت تريد إغلاق TensorBoard، فاضغط على CTRL+C

نصيحة سريعة: تحقق من موجه الأناكوندا الخاص بك لمعرفة دليل العمل الحالي،

استخدم TensorBoard

يجب إنشاء ملف السجل على C:\Users\Admin

نبذة عامة

TensorBoard هي أداة رائعة لتصور النموذج الخاص بك. بالإضافة إلى ذلك، يتم عرض العديد من المقاييس أثناء التدريب، مثل الخسارة أو الدقة أو الأوزان.

لتنشيط Tensorboard، تحتاج إلى تعيين مسار ملفك:

cd /Users/Guru99/tuto_TF

قم بتنشيط بيئة Tensorflow

activate hello-tf

إطلاق Tensorboard

tensorboard --logdir=.+ PATH