تنفيذ Pytorch الممكّن من CUDA لعمارة Capsnet في الورقة "التوجيه الديناميكي بين الكبسولات" بقلم Kenta Iwasaki نيابة عن Gram.ai.
يتم التدريب على النموذج باستخدام Torchnet ، مع تحميل مجموعة بيانات MNIST والمعالجة المسبقة مع TorchVision.
الكبسولة هي مجموعة من الخلايا العصبية التي يمثل متجه النشاط معلمات إنشاء نوع معين من الكيان مثل جزء كائن أو جزء كائن. نحن نستخدم طول ناقل النشاط لتمثيل احتمال وجود الكيان وتوجهه لتمثيل معلمات التثبيت. الكبسولات النشطة في مستوى واحد تجعل التنبؤات ، عبر مصفوفات التحول ، لمعلمات إنشاء كبسولات عالية المستوى. عندما تتفق تنبؤات متعددة ، تصبح كبسولة مستوى أعلى نشطة. نوضح أن نظام كبسولة مدربة على سبيل المثال ومتعددة الطبقات يحقق أداءً على أحدث طراز على MNIST وهو أفضل بكثير من شبكة تلافيفية في التعرف على الأرقام المتداخلة للغاية. لتحقيق هذه النتائج ، نستخدم آلية التوجيه التكرارية على حدة: تفضل الكبسولة ذات المستوى الأدنى إرسال ناتجها إلى كبسولات ذات مستوى أعلى لها منتجات عقيدة كبيرة مع التنبؤ القادم من الكبسولة ذات المستوى الأدنى.
ورقة كتبها سارة سابور ونيكولاس فروسست وجيفري هينتون. لمزيد من المعلومات ، يرجى مراجعة الورقة هنا.
الخطوة 1 اضبط عدد عصر التدريب ، وأحجام الدُفعات ، إلخ. داخل capsule_network.py .
BATCH_SIZE = 100
NUM_CLASSES = 10
NUM_EPOCHS = 30
NUM_ROUTING_ITERATIONS = 3الخطوة 2 ابدأ التدريب. سيتم تنزيل مجموعة بيانات MNIST إذا لم يكن لديك بالفعل في نفس الدليل الذي يتم تشغيل البرنامج النصي فيه. تأكد من تشغيل خادم Visdom!
$ sudo python3 -m visdom.server & python3 capsule_network.py كانت أعلى دقة 99.7 ٪ على 443rd. قد يحقق النموذج دقة أعلى كما هو موضح في اتجاه الرسوم البيانية للاختبار/الخسارة أدناه.

تم استخدام Pytorch Adam Optimizer الافتراضي مع عدم وجود جدولة معدل التعلم. عصر بحجم الدفعة 100 يستغرق ~ 3 دقائق على شفرة Razer W/ GTX 1050 و ~ 2 دقيقة على Nvidia Titan XP
أشار بشكل أساسي إلى هذين اثنين من تطبيقات TensorFlow و Keras:
شكرًا جزيلاً لـ @innerpeace-wu لمناقشة حول إجراء التوجيه الديناميكي الموضح في الورقة.
تقوم Gram.ai حاليًا بتطوير عدد كبير من نماذج الذكاء الاصطناعى إما أن تكون مفتوحة المصدر أو إصدارها مجانًا للمجتمع ، وبالتالي لماذا لا يمكننا ضمان الدعم الكامل لهذا العمل.
إذا كانت أي مشكلات تطرح استخدام هذا التنفيذ ، أو إذا كنت ترغب في المساهمة بأي شكل من الأشكال ، فلا تتردد في إرسال بريد إلكتروني إلى [email protected] أو فتح مشكلة GitHub جديدة في هذا المستودع.