سؤال

أقوم حاليًا ببناء مكتبة الشبكة العصبية.لقد قمت بإنشائه كرسم بياني للكائن من أجل البساطة.أتساءل عما إذا كان بإمكان أي شخص تحديد فوائد الأداء من خلال اتباع نهج قائم على المصفوفة.ما لدي الآن يعمل بشكل جيد جدًا لبناء شبكات قريبة من التعقيد التعسفي.يتم دعم الشبكات العادية (backproped) وكذلك الشبكات المتكررة.أفكر في "تجميع" الشبكات المدربة في شكل "أبسط" مثل المصفوفات.

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

ملحوظة: بصمة الذاكرة أقل أهمية من السرعة.

هل كانت مفيدة؟

المحلول

وهذا كله يتوقف على ما هي اللغة التي تستخدم - أفترض أنك تستخدم مشتقات C

.

في تطبيقات بلدي لقد وجدت النهج كائن الرسم البياني أعلى بكثير. هناك بعض المقايضة في سرعة، ولكن سهولة الصيانة تفوق المكالمات الكائن البحث. كل هذا يتوقف على ما إذا كنت تبحث عن سرعة التدريب أو حل السرعة، فضلا عن ... أفترض أنك أكثر قلقا بشأن سرعة التدريب؟

ويمكنك دائما في نهاية المطاف بعض القضايا دعوة الكائن إذا لزم الأمر، تحسين الصغيرة.

ونظرا الدافع الثانوي للشبكات الفرعية المعاوضة، وأعتقد أنه أكثر أهمية أن يكون الكائن مقرها - أنه يجعل من الاسهل بكثير لإخراج أجزاء من العمل

نصائح أخرى

وقد بدأت

والأشخاص الذين يستخدمون تقنيات GPGPU في منظمة العفو الدولية، ويمكن وجود شبكة العصبي الخاص بك في شكل مصفوفة الإستفادة من مكتب خدمات المشاريع مصفوفة أسرع بكثير في بطاقة الرسومات النمطية الخاصة بك.

ولكن هل تنفيذه، يجب ألا ننسى أبدا:

http://xkcd.com/534/

ولقد كانت فترة من الوقت، ولكن أذكر أن السرعة هي عادة فقط قضية خلال تدريب الشبكة العصبية.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top