شبکه عصبی بعنوان ابزار اصلی در زمینه یادگیری عمیق مورد توجه بسیاری از برنامهنویسان میباشد. کتابخانههای متنوعی برای استفاده از شبکههای عصبی در متلب، پایتون و دیگر زبانهای محاسبات علمی ارائه شده است. با اینحال برای کاربردهای عملیتر به پیادهسازی شبکه عصبی در زبانهای سطح میانی نیاز میباشد. یکی از کتابخانههایی که استفاده از شبکههای عصبی را با کارایی و سرعت بالا در زبان ++C فراهم کرده است، OpenNN میباشد. در این نوشته به معرفی این کتابخانه پرداخته میشود.
بسم الله الرحمن الرحیم
کتابخانه OpenNN بصورت کاملا شی گرا در زبان ++C نوشته شده و بصورت Opensource در اختیار عموم قرار دارد. لذا استفاده کنندگان میتوانند مطابق نیازهای خود کدهای این کتابخانه را تغییر دهند. ویژگی دیگر این کتابخانه معماری عمیق در شبکه عصبی میباشد به این معنی که کاربر میتواند هر شبکه با تعداد و ساختار لایه دلخواه را طراحی و استفاده نماید. قابلیت دیگر این کتابخانه که باعث تمایز آن از دیگر کتابخانههای موجود میشود، پشتیبانی از پردازش موازی در محاسبات و همچنین استفاده از شتاب دهنده واحد پردازش گرافیکی CUDA میباشد.
این کتابخانه دارای نرم افزار با رابط کاربری برای طراحی و آموزش شبکههای عصبی میباشد. این نرم افزار که با نام NeuralDesigner ارائه شده است، بر روی سیستمهای عامل لینوکس، ویندوز و مک قابل اجرا میباشد. البته ویرایش مجانی این نرمافزار تعداد داده محدودی را برای ورودی میپذیرد که از عیوب آن محسوب میگردد. این کتابخانه در آدرس گیت هاب زیر در دسترس میباشد:
مثالهای پیادهسازی شده توسط این کتابخانه نیز در آدرس زیر قابل بارگیری میباشند:
مثالهای نحوه استفاده از کتابخانه OpenNN
عیب نسبی دیگر این کتابخانه ضعیف بودن راهنمای آن است، که البته سازندگان آن ادعا کردهاند در حال تکمیل و گسترش آن میباشند. راهنمای کتابخانه نیز از آدرس زیر در دسترس میباشد: