🎯 كيفية استدعاء Microsoft.Windows.AI من C++ [مع نموذج كود]
بدءًا من نظام التشغيل Windows 10، يأتي Windows مزودًا بـ وقت تشغيل يمكنه تنفيذ نماذج الذكاء الاصطناعي بتنسيق ONNX بشكل قياسي. هذا هو Windows ML (Windows.AI.MachineLearning).
في هذه المقالة، سنشرح بالتفصيل كيفية استدعاء Microsoft.Windows.AI.MachineLearning من C++ (تطبيق Win32 الأساسي) مع نموذج كود.
✅ التحضير
◾ المتطلبات
- Windows 10 (1809+) أو Windows 11
- Visual Studio 2019 أو أحدث (إصدار Community مناسب)
- دعم C++/WinRT (
Microsoft.Windows.CppWinRT) - Windows SDK 10.0.17763.0 أو أحدث
✅ هيكل المشروع
قم بإنشاء مشروع بالهيكل التالي في Visual Studio.
النوع: تطبيق سطح مكتب Windows C++ (مشروع فارغ)
النظام الفرعي: Windows (
WinMain)أضف الحزم التالية عبر NuGet
1Microsoft.Windows.CppWinRT
✅ نموذج الكود
فيما يلي حد أدنى لنموذج يجمع بين Win32 API و Windows.AI.MachineLearning باستخدام WinMain.
※ نموذج ONNX المستخدم هو
model.onnx، يرجى وضعه في نفس المجلد مع الملف القابل للتنفيذ.
main.cpp
| |
✅ ملحق: كيفية تحديد Tensor الإدخال/الإخراج
اعتمادًا على النموذج، قد تحتاج إلى إنشاء وربط Tensor قبل الاستدلال.
مثال:
| |
وبالمثل، يمكن الحصول على الإخراج باستخدام result.Outputs().Lookup(L"output_0").
✅ ملاحظات التصحيح
- إذا لم يكن ملف النموذج موجودًا في مجلد التنفيذ، فسيتم إلقاء
FileNotFoundException. - إذا لم تتطابق أسماء الإدخال/الإخراج، فسيحدث خطأ
invalid_argument. - يمكن التحقق من مواصفات الإدخال/الإخراج الدقيقة للنموذج باستخدام أدوات مثل Netron.
✅ الخلاصة
| العنصر | المحتوى |
|---|---|
| واجهة برمجة التطبيقات المستخدمة | Windows.AI.MachineLearning (WinRT) |
| اللغة | C++ (Win32) |
| الطريقة الموصى بها | عبر ترويسة C++/WinRT |
| المزايا | يعمل نموذج ONNX بشكل أصلي، ويدعم وحدة معالجة الرسومات أيضًا |
| تنبيه | انتبه لاسم إدخال النموذج وشكل Tensor |
✅ بديل: لأولئك الذين لا يرغبون في استخدام WinRT
- باستخدام
ONNX Runtimeمن Microsoft، يمكنك التعامل مع نماذج ONNX من C++ تمامًا بدون WinRT. - يدعم الأنظمة الأساسية المتعددة، مما يسمح برمز مشترك لـ Windows/Linux.
📌 الخاتمة
Windows ML (Microsoft.Windows.AI) هو محرك استدلال ذكاء اصطناعي قوي يمكن استخدامه بشكل جيد حتى من C++. إذا كنت بحاجة إلى الاستدلال الأصلي على Windows، يرجى تجربته.
سيتم شرح أمثلة محددة لإنشاء نماذج ONNX وربط Tensor في مقال تكميلي!
