"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > سد التعلم الآلي باستخدام TensorFlow: من Python إلى JavaScript

سد التعلم الآلي باستخدام TensorFlow: من Python إلى JavaScript

تم النشر بتاريخ 2024-11-01
تصفح:874

Bridging Machine Learning with TensorFlow: From Python to JavaScript

إضفاء الحيوية على التعلم الآلي باستخدام TensorFlow

كمطور جافا سكريبت، فإن الغوص في التعلم الآلي ليس أمرًا شاقًا كما قد يبدو. على الرغم من أنه من الممكن تقنيًا التعامل مع كل شيء باستخدام حزم Node.js، إلا أن نظام Python ML البيئي غني جدًا وراسخ جدًا بحيث لا يمكن تجاهله. بالإضافة إلى ذلك، يعد التعامل مع بايثون أمرًا رائعًا. لذا، فمن المنطقي استخدام بايثون للقيام بالمهمة الثقيلة على الواجهة الخلفية. بمجرد الانتهاء من تجهيز النموذج الخاص بك، يمكنك تصديره إلى تنسيق سهل الاستخدام للواجهة الأمامية وتحميله على العميل لتشغيل التنبؤات.

توليد نموذج

في هذا المنشور، سنقوم ببناء نموذج للتنبؤ بشعبية الفنان بناءً على عدد متابعيه على تويتر.

الخطوة الأولى هي وضع أيدينا على مجموعة البيانات. بالنسبة لهذا المشروع، سنستخدم ملف Artists.csv الذي يبدو كالتالي:

twitter_followers,popularity,handle
111024636,94,justinbieber
107920365,91,rihanna
106599902,89,katyperry
95307659,97,taylorswift13
66325495,87,selenagomez
66325135,71,selenagomez
60943147,83,jtimberlake
54815915,82,britneyspears
53569307,85,shakira

كما ترون، هناك قيمتان أساسيتان هنا: twitter_followers والشعبية. وهذا يهيئنا بشكل جيد لنموذج التسلسل، حيث x سيكون من متابعي تويتر وy سيكون مشهورًا.

نموذج التسلسل هو أحد أسهل الخيارات لبناء النموذج. على الرغم من أن الاختيار يعتمد في النهاية على حالة الاستخدام المحددة، إلا أنني أبقي الأمر بسيطًا وألتزم بهذا النهج في الوقت الحالي.

بناء الواجهة الخلفية

عندما تقوم بإنشاء نموذج، هناك بعض المهام الأساسية التي ستحتاج إلى معالجتها:

  • تنظيف البيانات أو تطبيعها
  • تقسيم البيانات إلى تدريب (80%) واختبار (20%)
  • اختر نموذجًا مع إعدادات مثل المحسن ووظيفة الخسارة
  • تدريب النموذج (مناسب)
  • تقييم النموذج
  • حفظ النموذج

الكود التالي يمنحك نظرة عامة جيدة على هذه المهام، على الرغم من أنها ليست الصورة الكاملة. يمكنك التحقق من الكود الكامل على جيثب.

بايثون: البدء مع TensorFlow

def get_model(x, y):
    x_normalized = layers.Normalization(
        axis=None,
    )
    x_normalized.adapt(np.array(x))

    model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)])

    model.compile(
        optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1),
        loss="mean_squared_error",
    )

    model.fit(
        x,
        y,
        epochs=2,
        verbose=0,
        validation_split=0.2,
    )

    return model

def main:
  train_features, test_features, train_labels, test_labels = split_data(dataset)

  model = get_model(
      train_features["twitter_followers"],
      train_labels,
  )

  test_loss = model.evaluate(
      test_features["twitter_followers"], test_labels, verbose=2
  )

  model.export("./saved_model")

كما ترون، كود بايثون بسيط جدًا. هناك وظيفة رئيسية تتولى تقسيم البيانات والحصول على النموذج وتقييمه وحفظه في النهاية.

باختصار، هذه هي الخطوات الأساسية لإنشاء نموذج. ولكن لنكن واقعيين: إن بناء نموذج ناجح بالفعل هو فن وعلم في نفس الوقت. هدفي هنا هو فقط إظهار مدى سهولة البدء باستخدام بايثون. ومع ذلك، هناك الكثير مما يلزم لإنشاء نموذج يعمل بشكل جيد، مثل وجود مجموعة بيانات قوية، وتنظيف بياناتك وتسويتها، واختيار النموذج والإعدادات الصحيحة، وامتلاك القدرة الحاسوبية لتدريبها. كل هذه المهام تتطلب استثمارًا جديًا للوقت والجهد!

استهلاك النموذج على الواجهة الأمامية

الآن بعد أن قمنا بتدريب نموذجنا وحفظه، فقد حان الوقت لإدخاله في الواجهة الأمامية. في هذه الخطوة سنقوم بتحميل النموذج بتنسيق مناسب للويب، حتى نتمكن من تشغيل التنبؤات مباشرة في المتصفح. سواء كنت تستخدم TensorFlow.js أو مكتبة أخرى، فإن دمج التعلم الآلي في تطبيق الويب الخاص بك يفتح لك عالمًا من الاحتمالات. دعونا نتعمق في كيفية القيام بذلك!

يقدم TensorFlow حزمة npm تسمى Tensorflowjs_converter والتي تساعد في تحويل النماذج المحفوظة إلى JSON وثنائي.

tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
  • tf_saved_model: هذا هو التنسيق المستخدم لحفظ النموذج.
  • model/saved_model: هذا هو الدليل الذي تم حفظ النموذج فيه عند تنفيذ كود بايثون.
  • out/public: هذا هو دليل الإخراج حيث يتم حفظ الملفات الصديقة للواجهة الأمامية. ستبدو بنية المجلد كما يلي:
ls -la out/public

group1-shard1of1.bin
model.json

يُسهل هذا الإعداد الوصول إلى الملفات الضرورية لتطبيق الويب الخاص بك.

جافا سكريبت: استخدام TensorFlowJS

يمكنك التحقق من الكود الكامل على جيثب.

const model = await tensorflow.loadGraphModel("model.json");

const getPopularity = (followers) => {
  const followers = 1_000;
  const normalized = followers;
  const x = tensorflow.tensor(normalized).reshape([-1, 1]);

  const result = model.predict(x);
  const values = result.arraySync();

  const y = values[0][0].toFixed(2) * 100;
  const popularity = y;

  return popularity;
};

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

ألق نظرة على كيفية قيام getPopularity بمعالجة الإدخال قليلاً، ولكن الخط الرئيسي هو model.predict(x)، الذي يستخدم النموذج للتنبؤ بالقيمة (y) بناءً على الإدخال x.

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

خاتمة

TensorFlow هي مكتبة رائعة توفر أدوات لتطوير الواجهة الخلفية والواجهة الأمامية. يمكن لأي مطور جافا سكريبت أن يتعمق في إنشاء نموذج باستخدام Python أو لغة مشابهة، ثم يستورد هذا النموذج بسهولة إلى الواجهة الأمامية لتشغيل التنبؤات.

على الرغم من أن التعلم الآلي هو مجال واسع يتطلب الكثير من المعرفة، إلا أن أدوات مثل TensorFlow تساعد في سد الفجوة بين مطوري البرامج والتعلم الآلي. إنه يجعل الرحلة أكثر سلاسة لأولئك الذين يتطلعون إلى دمج التعلم الآلي في مشاريعهم!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/garciadiazjaime/bridging-machine-learning-with-tensorflow-from-python-to-javascript-25hp?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3