كمطور جافا سكريبت، فإن الغوص في التعلم الآلي ليس أمرًا شاقًا كما قد يبدو. على الرغم من أنه من الممكن تقنيًا التعامل مع كل شيء باستخدام حزم 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 سيكون مشهورًا.
نموذج التسلسل هو أحد أسهل الخيارات لبناء النموذج. على الرغم من أن الاختيار يعتمد في النهاية على حالة الاستخدام المحددة، إلا أنني أبقي الأمر بسيطًا وألتزم بهذا النهج في الوقت الحالي.
عندما تقوم بإنشاء نموذج، هناك بعض المهام الأساسية التي ستحتاج إلى معالجتها:
الكود التالي يمنحك نظرة عامة جيدة على هذه المهام، على الرغم من أنها ليست الصورة الكاملة. يمكنك التحقق من الكود الكامل على جيثب.
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
ls -la out/public group1-shard1of1.bin model.json
يُسهل هذا الإعداد الوصول إلى الملفات الضرورية لتطبيق الويب الخاص بك.
يمكنك التحقق من الكود الكامل على جيثب.
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 تساعد في سد الفجوة بين مطوري البرامج والتعلم الآلي. إنه يجعل الرحلة أكثر سلاسة لأولئك الذين يتطلعون إلى دمج التعلم الآلي في مشاريعهم!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3