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

من الصورة أدناه، يمكنك رؤية لوحة تصور الرسم البياني TensorBoard. تحتوي اللوحة على علامات تبويب مختلفة مرتبطة بمستوى المعلومات التي تضيفها عند تشغيل النموذج.
- الندوب: عرض معلومات مفيدة مختلفة أثناء التدريب على النموذج
- الرسوم البيانية: اعرض النموذج
- الرسم البياني: عرض الأوزان مع الرسم البياني
- التوزيع: عرض توزيع الوزن
- جهاز عرض : عرض تحليل المكون الرئيسي وخوارزمية T-SNE. التقنية المستخدمة لتقليل الأبعاد
خلال هذا البرنامج التعليمي لـ TensorBoard، سوف تقوم بتدريب نموذج بسيط للتعلم العميق. سوف تتعلم كيف يعمل في البرنامج التعليمي في المستقبل.
إذا نظرت إلى الرسم البياني، يمكنك فهم كيفية عمل النموذج.
- إدراج البيانات في النموذج: ادفع كمية من البيانات مساوية لحجم الدُفعة إلى النموذج، أي عدد تغذية البيانات بعد كل تكرار
- قم بتغذية البيانات إلى Tensors
- درب النموذج
- عرض عدد الدفعات أثناء التدريب. احفظ النموذج على القرص.
الفكرة الأساسية وراء Tensorboard هي أن الشبكة العصبية يمكن أن تكون بمثابة صندوق أسود ونحتاج إلى أداة لفحص ما بداخل هذا الصندوق. يمكنك تخيل Tensorboard كمصباح يدوي للبدء في الغوص في الشبكة العصبية.
يساعد ذلك في فهم التبعيات بين العمليات، وكيفية حساب الأوزان، وعرض دالة الخسارة والعديد من المعلومات المفيدة الأخرى. عندما تجمع كل هذه المعلومات معًا، يكون لديك أداة رائعة لتصحيح الأخطاء والعثور على كيفية تحسين النموذج.
لإعطائك فكرة عن مدى فائدة الرسم البياني TensorBoard، انظر إلى الصورة أدناه:

تقرر الشبكة العصبية كيفية ربط "الخلايا العصبية" المختلفة وعدد الطبقات قبل أن يتمكن النموذج من التنبؤ بنتيجة ما. بمجرد تحديد البنية، لن تحتاج فقط إلى تدريب النموذج ولكن أيضًا إلى مقاييس لحساب دقة التنبؤ. يشار إلى هذا المقياس باسم فقدان وظيفة. الهدف هو تقليل دالة الخسارة. بعبارة أخرى، هذا يعني أن النموذج يرتكب أخطاء أقل. ستكرر جميع خوارزميات التعلم الآلي العمليات الحسابية عدة مرات حتى تصل الخسارة إلى خط أكثر تسطحًا. لتقليل دالة الخسارة هذه، تحتاج إلى تحديد معدل التعليم. إنها السرعة التي تريد أن يتعلمها النموذج. إذا قمت بتعيين معدل تعلم مرتفع جدًا، فلن يكون لدى النموذج الوقت لتعلم أي شيء. وهذا هو الحال في الصورة اليسرى. يتحرك الخط لأعلى ولأسفل، مما يعني أن النموذج يتنبأ بالنتيجة بتخمين خالص. توضح الصورة الموجودة على اليمين أن الخسارة تتناقص مع التكرار حتى يصبح المنحنى مسطحًا، مما يعني أن النموذج وجد حلاً.
يعد 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
في عمل Windows المستخدم
يمكنك رؤية هذه المعلومات فيPyTorch TensorBoard.
الآن بعد أن قمت بكتابة أحداث السجل، يمكنك فتح Tensorboard. يعمل Tensorboard Keras على المنفذ 6006 (Jupyter يعمل على المنفذ 8888). يمكنك استخدام Terminal لمستخدمي MacOs أو موجه Anaconda لـ 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
يمكن أيضًا أن يكون موجودًا في الموقع التالي.
انسخ عنوان URL والصقه في متصفحك المفضل. يجب أن ترى هذا:
لاحظ أننا سنتعلم كيفية قراءة الرسم البياني في البرنامج التعليمي المخصص لـ التعلم العميق.
إذا رأيت شيئًا مثل هذا:
هذا يعني أن Tensorboard لا يستطيع العثور على ملف السجل. تأكد من توجيه القرص المضغوط إلى المسار الصحيح أو تحقق مرة أخرى من إنشاء حدث السجل. إذا لم يكن الأمر كذلك، فأعد تشغيل الكود.
إذا كنت تريد إغلاق TensorBoard، فاضغط على CTRL+C
نصيحة سريعة: تحقق من موجه الأناكوندا الخاص بك لمعرفة دليل العمل الحالي،
يجب إنشاء ملف السجل على C:\Users\Admin
ملخص
يعد TensorBoard أداة رائعة لتصور نموذجك. بالإضافة إلى ذلك، يتم عرض العديد من المقاييس أثناء التدريب، مثل الخسارة أو الدقة أو الأوزان.
لتنشيط Tensorboard، تحتاج إلى تعيين مسار ملفك:
cd /Users/Guru99/tuto_TF
قم بتنشيط بيئة Tensorflow
activate hello-tf
إطلاق Tensorboard
tensorboard --logdir=.+ PATH







