للحصول على أحدث نتائج الأداء، يرجى الاطلاع على: https://github.com/AI-performance/embedded-ai.bench/releases
التجميع بنقرة واحدة: اسحب كود إطار العمل وقم بتجميع المكتبة؛
التحويل بنقرة واحدة: سحب النموذج الأصلي، وتجميع أداة التحويل، وتحويل النموذج؛
قياس السرعة بنقرة واحدة: اسحب نموذج الإطار وقياس السرعة. يتم تخزين نموذج الإطار في مستودعات كود مختلفة، وستكمل عملية اختبار السرعة عملية السحب تلقائيًا.
#tnncd ./tnn ./build_tnn_android.sh # تابع واقرأ `./tnn/build_tnn_android.sh` إذا فشل البناءcd -# mnncd ./mnn ./build_mnn_android.sh # تابع واقرأ `./mnn/build_mnn_android.sh` إذا فشل البناءcd -# ncnncd ./ncnn ./build_ncnn_android.sh # تابع واقرأ `./ncnn/build_ncnn_android.sh` إذا فشل البناء cd -# tflitecd ./tflite ./build_tflite_android.sh # تابع واقرأ `./tflite/build_tflite_android.sh` إذا فشل البناءcd -# benchpython bench.py# إذا كان التنفيذ على ما يرام:# ===> تحرير ./core/global_config.py# === > تحرير قيمة `GPU_REPEATS=1000`، `CPU_REPEATS=100`، `WARMUP=20`, `ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python bench.py# راجع نتيجة الاختبار أدناه# ./tnn/*.csv# ./mnn/*. csv# ./ncnn/*.csv
النماذج المدعومة حاليًا محدودة، راجع: نماذج tnn، ونماذج mnn، ونماذج ncnn، ونماذج tflite.
عرض نتيجة مقاعد البدلاء mnn
عرض نتائج مقاعد البدلاء ncnn
عرض نتائج مقاعد البدلاء Tnn
عرض نتائج مقاعد البدلاء tflite
ويوضح الشكل التالي بنية هذا المشروع:
محرك الفئة: قم بإنشاء مثيل لكل إطار عمل بواسطة engine_config
، وتحميل النماذج، وتجميع محرك lib (المهام: ليتم دمجها في البرنامج النصي py)، وتشغيل نتائج البدلاء؛
BenchSum(TODO): يلخص نتائج البدلاء لكل مثيل محرك؛
الريبو النموذجي المشترك (TODO): مستودع يخزن النماذج الأصلية العامة. مثل Caffe، والنماذج الكلاسيكية لإطار عمل TensorFlow (MobileNetV1/V2، وما إلى ذلك).
مستودع نماذج مستقل لكل محرك، مثل نماذج tnn. يحتوي على نموذج tnn الذي تم تحويله من مستودع النماذج العام، والبرنامج النصي للتجميع بنقرة واحدة (TODO) لمحول النموذج، والبرنامج النصي للتحويل بنقرة واحدة (TODO) لتحويل النموذج، والبرنامج النصي لتحديث بنقرة واحدة للنموذج. الإصدار النموذجي لـ README؛
يتم تحديث مستودع النماذج المستقل لكل محرك بشكل مستقل ومنتظم (TODO)؛
أثناء التنفيذ، سيقوم كل مثيل Engine بسحب النماذج من مستودع النماذج المستقل الخاص به للتحضير للمنصة.
يُحظر على الموضوعات الأخرى غير منظمة AI-Performance مفتوحة المصدر [علنًا] نشر [النتائج المعيارية المستندة إلى هذا المشروع]. إذا تم نشرها علنًا، فسيتم اعتبارها انتهاكًا، ويحق لـ AI-Performance متابعة المسؤولية القانونية.
تأخذ منظمة AI-Performance مفتوحة المصدر الحياد والإنصاف والنزاهة والانفتاح كمبادئ تنظيمية لها وتلتزم بإنشاء وصياغة معايير مرجعية في مجال الذكاء الاصطناعي.
عادة لا يتم تشغيل "وضع المطور" بعد التأكد من تشغيله، ولا يزال من غير الممكن العثور عليه، وعادة ما يتم حله باتباع التسلسل التالي:
تم تغيير إعداد اتصال USB من "الشحن فقط" إلى "نقل الملفات"؛
تغيير واجهة USB (ربما الجهد)؛
أضف معرف البائع إلى ~/.android/adb_usb.ini ثم adb kill-server ثم adb start-server؛
أعد تشغيل الهاتف؛
أعد تشغيل الكمبيوتر.
قم بتغيير كابل البيانات (لقد وجدت أن هذا قد حدث من قبل)؛
سيشغل محرك الأقراص المضغوطة Hisuite الخاص بهواتف Huawei المحمولة بنك التنمية الآسيوي. أخرج محرك الأقراص؛
فلاش الهاتف.
لإرسال التعليمات البرمجية لأول مرة، تحتاج إلى تنفيذ الأمر التالي لتثبيت الخطاف. بعد التثبيت الناجح، في كل مرة يتم فيها تنفيذ git commit
، سيتم فحص عناصر التحقق المحددة في .pre-commit-config.yaml
تلقائيًا. على سبيل المثال، يتم فحص التنسيق الحالي لرمز Python.
# قد يكون التنفيذ الأول للخطاف بطيئًا في التثبيت المسبق # إذا لم يتم العثور عليه، فأنت بحاجة إلى تثبيته أولاً قبل الالتزام بالتثبيت المسبق # إذا كنت ترغب في إلغاء التثبيت، فقم بتنفيذ إلغاء التثبيت المسبق
إذا لم تتمكن من العثور على python3.8، فيمكنك تثبيت minconda3 واستخدام الأمر التالي:
# تثبيت miniconda3 تلقائيًا وكتابة متغير بيئة المستخدم الحالي.github/workflows/pre-commit-job.sh# قبل إرسال الكود، أنشئ بيئة باسم dev_env_py كمثال، إذا واجهتها، فاختر yconda create -n dev_env_py python = 3.8# تنشيط البيئة المنشأة حديثًا condaactivate dev_env_py# إعادة التثبيت المسبق للالتزامتثبيت مسبق
إذا توقف CI، فتحقق من السجل المحدد لإجراء Github لمعرفة ما إذا كان ذلك بسبب انتهاء المهلة مثل مستودع
git clone
. في هذا الوقت، يمكنكRe-run this jobs
.
.github/workflows/unit-test-job.sh