
Propel: یک فریمورک یادگیری ماشینی برای جاوااسکریپت
Propel یک زیرساخت مبتنی بر پردازندهٔ گرافیکی (GPU) و مشابه لایبرری NumPy را برای محاسبات علمی در جاوااسکریپت فراهم میکند و این در حالی است که جاوااسکریپت یک زبان سریع و پویا است به طوری که میتوان آن را به عنوان یک پلتفرم ایدهآل برای برنامهنویسی در هر زمینهای به کار برد (برای آشنایی بیشتر با NumPy، به مقالهٔ درآمدی بر آمار با استفاده از لایبرری NumPy و زبان برنامهنویسی Python مراجعه نمایید).
ویژگیهای شاخص فریمورک Propel
Propel قابلیت اجرا در مرورگر و همچنین Node.js (به صورت نِیتیو) را دارا است و در هر دو محیط، Propel از سختافزار GPU برای محاسبات استفاده میکند (برای اجرا در مرورگر هم از لایبرری WebGL استفاده میکند). همچنین در صورت استفاده از این API #جاوااسکریپت برای گرافیکهای دوبعدی و سهبعدی، Deeplearn.js قابلیت اجرای محاسبات روی GPU را خواهد داشت (لازم به ذکر است که برای اجرا در Node.js از ایپیآی زبان C لایبرری TensorFlow استفاده میکند).
با اجرای Propel در محیطی غیر از مرورگر، کاربران امکان بهکارگیری چندین GPU را دارند و میتوانند کانکشنی از نوع TCP برقرار کنند (دیپلویِ مدلهای توسعهیافته در سمت سرور به مانند دموهای اچتیامال بسیار آسان است).
پکیج نرمافزاری Propel Npm فقط به زبان جاوااسکریپت است و قابلیتهای لایبرری TensorFlow در آن وجود ندارد اما نصب این فریمورک سرعت محاسبات را به طور چشمگیری افزایش میدهد (برای آشنایی بیشتر با تنسورفلو، به مقالهٔ TensorFlow: فریمورک اپنسورس یادگیری ماشینی گوگل مراجعه نمایید).
برخلاف تنسورفلو، Propel دارای یک API کاربردی به سَبک Autograd است که در صورت اجرای آن، گرافهای محاسباتی ترسیم میشوند. لازم به ذکر است که پکیج Autograd میتواند کدهای نیتیو Python و NumPy را از هم متمایز کند و قابلیت هَندل کردن یک زیرمجموعهٔ بزرگ از ویژگیهای پایتون از جمله حلقهها، دستورات شرطی و غیره را دارا است.
همچنین توانایی مشتقگیری به حالت معکوس را نیز دارا میباشد بدین معنی که میتواند به طور مؤثری گرادیان توابع اِسکالر را با توجه آرگومانهای آرایهٔ آن محاسبه کند؛ در نهایت هم دو حالت گرادیان را به صورت دلخواه با هم ترکیب میکند. در یک کلام، کاربرد اصلی Autograd بهینهسازی مبتنی بر گرادیان است.