ابزارها

بسم الله الرحمن الرحیم

من اینجا لیست ابزارها و چارچوبهایی (فریم ورک) هایی که برای کار تو حوزه دیپ لرنینگ ازش استفاده میشه رو قرار دادم و میدم .سعی اولیه من اینه که ابزارهای مهم و معروف اینجا قید بشه بعدا به مرور زمان شاید ابزارهای پرکاربرد دیگه هم اینجا بزارم.

 

نکته مهم برای کارت های گرافیک AMD :

کارت های گرافیک AMD سابقا در زمینه یادگیری عمیق پشتیبانی بسیار ضعیفی داشتند بصورتی که عملا در فریم ورکهای مطرح تنها کارتهای گرافیک ساخت شرکت NVidia پشتیبانی میشد و مورد استفاده قرار میگیرفت. این مساله البته مدتی هست که تا حدودی تغییر کرده و شرکت AMD شروع به ارایه پشتیبانی در این زمینه کرده. البته این پشتیبانی گسترده نیست و فعلا فقط از لینوکس پشتیبانی میشه. شما میتونید نسخه های مبتنی بر  ROCm (RadeonOpenCompute) فریم ورکهایی مثل Tensorflow و Pytorch رو از اینجا دانلود و نصب کنید.  دقت کنید نسخه ها همیشه بروز نیستند و چندین ماه ممکنه طول بکشه تا نسخه ای بروز رسانی بشه. این پورتها برای کسانی هست که کارت گرافیک AMD دارند و قصد دارند از یادگیری عمیق استفاده کنند و متحمل خرید کارت گرافیک جدید نشن./ از خرید کارتهای گرافیک AMD برای استفاده در یادگیری عمیق تا زمانی که پشتیبانی مناسب وجود نداره بشدت پرهیز کنید.

لیست سخت افزارهایی که پشتیبانی میشن رو میتونید از اینجا مشاهده کنید

 

نکته مهم : 
چیزی که من پیشنهاد میکنم شما یاد بگیرید اول TensorFlow هست و بعد Torch و بعد Deeplearning4J. برای آشنایی caffe رو یادبگیرید. یادگیری و کارکردن باهاش خیلی ساده اس. خیلی قدرتمنده خصوصا تو شبکه های کانولوشن. اما بزرگترین مشکلش نداشتن مستندات درست و حسابیه. البته من تاجایی که تونستم و میتونم مستندات caffe‌رو تهیه کردم و میکنم و اگر سوالی دارید  میتونید از بخش پرسش و پاسخ سایت بپرسید. بر اساس آخرین اطلاعات اعلام شده توسط تیم توسعه دهنده کفی آخرین ورژن کفی ۱٫۱ خواهد بود (در حال حاضر در ورژن ۱٫۰ هستیم ) و توسعه های بعدی با Caffe2 ادامه پیدا خواهد کرد.Caffe2 مستندات بهتری از کفی بنظر میرسه داشته باشه (حداقل تلاش میکنن که اینطور به نظر بیاد) اما در حال حاضر در قیاس با تنسورفلو و تورچ و سایر فریم ورکهای معتبر هیچ صحبتی برای گفتن نداره . شاید در آینده زمانی که مستندات اون در حد و اندازه های سایر فریم ورکها برقرار شد استفاده ازاون منطقی باشه. اما در حال حاضر شخصا پیشنهاد نمیکنم .

اما از طرف دیگه  tensorflow توسط گوگل پشتیبانی میشه و بشدت داره رشد میکنه و منابع و مستندات بسیار خوبی براش تهیه شده و داره میشه ،جامعه کاربری بسیار بزرگی داره. هم در حوزه تحقیقاتی و هم صنعتی میشه براحتی ازش استفاده کرد و سیستم عاملهای متنوعی مثل لینوکس و ویندوز رو هم پشتیبانی کامل میکنه  و قابل نصب و اجراست ، پروسه نصب فوق العاده ساده ای هم داره (تنها با یک دستور میتونید عمل نصب رو انجام بدید ). اگر دوست دارید چیزی رو یاد بگیرید که هم برای تحقیقات و هم استفاده صنعتی و کار قابل استفاده باشه انتخاب مناسبیه.

Torch هم به همین شکل مستندات بسیار خوبی داره (و قبل از tensorflow بهترین گزینه ای بود که من میتونستم پیشنهاد کنم(البته از لحاظ جامعیت و راحتی کدنویسی هنوز تورچ بهتره ولی چون فقط در لینوکس اجرا میشه من اونو بعد از تنسورفلو پیشنهاد میکنم  تورچ هنوز وارد حوزه صنعتی نشده ولی برای تحقیقات بسیار خوبه. اینترفیس پایتون تحت عنوان pytorch هم چندماهی هست که منتشر شده و پیشرفتش فوق العاده بوده . مستنداتش رو هم داره کامل میکنه و در حال حاضر هم بسیار کامل و خوب پیش رفته . pytorch در لینوکس و مک و ویندوز بطور رسمی پشتیبانی میشه و براحتی میتونید اون رو نصب کنید.برای نصب کافیه اینجا رو ببینید. ( در ویندوز بصورت غیررسمی پیشتیبانی میکنه میتونید برای نصب اون در ویندوز از طریق دستور conda install -c peterjc123 pytorch  در پایتون ۳٫۵ یا ۳٫۶ استفاده کنید. )برای استارت کار میتونید اینجا کلیک کنید و برخلاف تنسورفلو ما تحریم نیستیم (فعلا!) . من سعی میکنم سر فرصت توضیحات تکمیلی رو در پستی جداگانه بدم.

خلاصه:

پس بصورت خلاصه اگر میخوایید چیزی رو یادبگیرید که همه جا بتونید ازش استفاده کنید و جامعه کاربری و مستندات خیلی خوب و بزرگی داشته باشه و پشتیبانی از سیستم عامل های مختلف(ویندوز ،لینوکس ،مک ،اندرویدو…)  رو داشته باشد و برای اهداف و مقاصد تحقیقاتی و صنعتی مناسب باشه تنسورفلو رو انتخاب کنید و یاد بگیرید
اگر فقط با پایتون قراره کار کنید و کار هم تحقیقاتی هست تورچ میتونه انتخاب خیلی خوبی باشه چرا که سینتکسش خیلی روان و ساده تر هست نسبت به تنسورفلو و بنظر من پیچیدگی کمتری داره. مستندات بسیار خوبی داره و خیلی خوب داره پیشرفت میکنه. تو حوزه تحقیقات دیپ لرنینگ هم خیلی از محققان در مقالات و کارهاشون از تورچ (و الان پای تورچ ) استفاده کردن و میکنن. پشتیبانی پای تورچ در ویندوز بصورت غیر رسمی هست ولی مشکلی نباید داشته باشید.(Pytorch رپرهای قدرتمندی در C++ هم ارایه کرده و در سی++ هم میتونید از اون استفاده کنید و دیگه محدود به پایتون نیست)

Deeplearning4J هم خوب داره رشد میکنه و برای سناریوهای جاوا و سیستم های توزیع شده میتونه خیلی خوب باشه.MxNet هم گزینه بسیار خوبی میتونه باشه چون رپرهای زیاید رو پشتیبانی میکنه.
من انشاالله سرفرصت سعی میکنم نکات مثبت این ها رو بگم . مطالب زیر در مورد caffe هم باقی میمونه برای ارجاعات آینده.

خلاصه :
استارت کارتون در دیپ لرنینگ رو یا با تنسورفلو بزنید یا تورچ
(اگر به رپر مربوط به زبان خاصی نیاز داشتید میتونید نگاهی به MxNet بندازید و اگر با جاوا خواستید کار بکنید (تنسورفلو هم پشتیبانی میکنه اما ) میتونید از DeepLearning4J استفاده کنید.


نصب کفی در لینوکس : 

برای نصب Caffe در لینوکس از این راهنما استفاده کنید. اگر از ورژن ۱۵ یا ۱۶ ابونتو استفاده میکنید از این آموزش استفاده کنید (و اگه نیاز به نصب و کار با رپر متلب در لینوکس دارید این راهنما رو ببنید بخش اخرش )

نحوه کامپایل و نصب Caffe در ویندوز  


نکات :

توضیحات این پاراگراف مربوط به سال ۹۴ هست و برای ارجاعات اینده حذفش نمیکنم. من در حال حاضر با کفی و تنسورفلو و کراس کار میکنم .اطلاعات فریم ورکها که در پایین داده شده رو البته من بروز میکنم. لیست کارتهای گرافیک و ورژن compute capability اونها هم به عنوان رفرنس قرار داره و بروزش میکنم هر بار) :

از بین اینها من خودم از Caffe استفاده کردم . بطور خیلی محدود هم از Theano . سرعت Caffe خیلی خوبه . قابلیتهای بسیار عالی ای داره و یه مخزن داره که بهش میگن Model Zoo و مدلهای معروف تو مقالات بصورت pre trained شده اماده دانلود و استفاده هستن.(یکی از ویژگی هایی که باعث استفاده زیاد از Caffe میشه دقیقا همین هست.). دانشگاه هایی مثل استنفورد برکلی و …. از این استفاده میکنن. بصورت رسمی Caffe‌ رو اوبونتو ۱۴٫۰۴ پیشتیبانی میشه.(مشکلی با ورژن های جدید نداره البته و پشتیبانی میشه) ولی بصورت جسته گریخته از یکی دو سال پیش ورژنهایی که روی ویندوز هم کامپایل بشن وجود داشتن ولی خب چون بصورت رسمی پشتیبانی نمیشد و معمولا هم توسط افراد معمولی این نسخه ها ارائه میشد هرکدوم یه مشکلی داشتن (حداقل مشکل بروز نبودن نسخه ویندوز نسبت به ورژن رسمی بود و اموزش ها و اسکریپت های مختلفی که فقط برای لینوکس وجود داشت و برای ویندوز پورت نمیشد معمولا خلاصه دردسر داشت.) نسخه ای هم که من گذاشتم پشتیبانی مایکروسافت هست.(من خودم شخصا از دو ورژن تحت ویندوز استفاده کردم قبلا. الان هم رو لینوکس هستم و تحقیقات و کارام رو لینوکس انجام میشه با caffe. ولی سر فرصت اینو تست میکنم و نظر خودم رو میگم).
نسخه OpenCL هم برای کارتهای غیر انویدیا اومده . یعنی کسایی که کارت گرافیک AMD(ATI) یا Intel و یا غیره دارن میتونن از این استفاده کنن.

 

 

GeForce Notebook Products

GPU Compute Capability
GeForce GTX 980 ۵٫۲
GeForce GTX 980M ۵٫۲
GeForce GTX 970M ۵٫۲
GeForce GTX 965M ۵٫۲
GeForce GTX 960M ۵٫۰
GeForce GTX 950M ۵٫۰
GeForce 940M ۵٫۰
GeForce 930M ۵٫۰
GeForce 920M ۳٫۵
GeForce 910M ۵٫۲
GeForce GTX 880M ۳٫۰
GeForce GTX 870M ۳٫۰
GeForce GTX 860M ۳٫۰/۵٫۰(**)
GeForce GTX 850M ۵٫۰
GeForce 840M ۵٫۰
GeForce 830M ۵٫۰
GeForce 820M ۲٫۱
GeForce 800M ۲٫۱
GeForce GTX 780M ۳٫۰
GeForce GTX 770M ۳٫۰
GeForce GTX 765M ۳٫۰
GeForce GTX 760M ۳٫۰
GeForce GTX 680MX ۳٫۰
GeForce GTX 680M ۳٫۰
GeForce GTX 675MX ۳٫۰
GeForce GTX 675M ۲٫۱
GeForce GTX 670MX ۳٫۰
GeForce GTX 670M ۲٫۱
GeForce GTX 660M ۳٫۰
GeForce GT 750M ۳٫۰
GeForce GT 650M ۳٫۰
GeForce GT 745M ۳٫۰
GeForce GT 645M ۳٫۰
GeForce GT 740M ۳٫۰
GeForce GT 730M ۳٫۰
GeForce GT 640M ۳٫۰
GeForce GT 640M LE ۳٫۰
GeForce GT 735M ۳٫۰
GeForce GT 635M ۲٫۱
GeForce GT 730M ۳٫۰
GeForce GT 630M ۲٫۱
GeForce GT 625M ۲٫۱
GeForce GT 720M ۲٫۱
GeForce GT 620M ۲٫۱
GeForce 710M ۲٫۱
GeForce 705M ۲٫۱
GeForce 610M ۲٫۱
GeForce GTX 580M ۲٫۱
GeForce GTX 570M ۲٫۱
GeForce GTX 560M ۲٫۱
GeForce GT 555M ۲٫۱
GeForce GT 550M ۲٫۱
GeForce GT 540M ۲٫۱
GeForce GT 525M ۲٫۱
GeForce GT 520MX ۲٫۱
GeForce GT 520M ۲٫۱
GeForce GTX 485M ۲٫۱
GeForce GTX 470M ۲٫۱
GeForce GTX 460M ۲٫۱
GeForce GT 445M ۲٫۱
GeForce GT 435M ۲٫۱
GeForce GT 420M ۲٫۱
GeForce GT 415M ۲٫۱
GeForce GTX 480M ۲٫۰
GeForce 710M ۲٫۱
GeForce 410M ۲٫۱

اگه کارتتون تو لیست بالا نبود اینجا رو چک کنید :

لیست کارتها و مشخصات compute capability اونها
بسم الله الرحمن الرحیم

Supported CUDA level of GPU and card. See also at Nvidia:

  • CUDA SDK 6.5 support for compute capability 1.0 – ۵٫x (Tesla, Fermi, Kepler, Maxwell). Last version with support for compute capability 1.x (Tesla)
  • CUDA SDK 7.5 support for compute capability 2.0 – ۵٫x (Fermi, Kepler, Maxwell)
  • CUDA SDK 8.0 support for compute capability 2.0 – ۶٫x (Fermi, Kepler, Maxwell, Pascal). Last version with support for compute capability 2.x (Fermi)
  • CUDA SDK 9.0/9.1/9.2 support for compute capability 3.0 – ۷٫۲ (Kepler, Maxwell, Pascal, Volta)
  • CUDA SDK 10.0 support for compute capability 3.0 – ۷٫۵ (Kepler, Maxwell, Pascal, Volta, Turing)
Compute
capability
(version)
Micro-
architecture
GPUs GeForce Quadro, NVS Tesla Tegra,
Jetson,
DRIVE
۱٫۰ Tesla G80 GeForce 8800 Ultra, GeForce 8800 GTX, GeForce 8800 GTS(G80) Quadro FX 5600, Quadro FX 4600, Quadro Plex 2100 S4 Tesla C870, Tesla D870, Tesla S870
۱٫۱ G92, G94, G96, G98, G84, G86 GeForce GTS 250, GeForce 9800 GX2, GeForce 9800 GTX, GeForce 9800 GT, GeForce 8800 GTS(G92), GeForce 8800 GT, GeForce 9600 GT, GeForce 9500 GT, GeForce 9400 GT, GeForce 8600 GTS, GeForce 8600 GT, GeForce 8500 GT,
GeForce G110M, GeForce 9300M GS, GeForce 9200M GS, GeForce 9100M G, GeForce 8400M GT, GeForce G105M
Quadro FX 4700 X2, Quadro FX 3700, Quadro FX 1800, Quadro FX 1700, Quadro FX 580, Quadro FX 570, Quadro FX 470, Quadro FX 380, Quadro FX 370, Quadro FX 370 Low Profile, Quadro NVS 450, Quadro NVS 420, Quadro NVS 290, Quadro NVS 295, Quadro Plex 2100 D4,
Quadro FX 3800M, Quadro FX 3700M, Quadro FX 3600M, Quadro FX 2800M, Quadro FX 2700M, Quadro FX 1700M, Quadro FX 1600M, Quadro FX 770M, Quadro FX 570M, Quadro FX 370M, Quadro FX 360M, Quadro NVS 320M, Quadro NVS 160M, Quadro NVS 150M, Quadro NVS 140M, Quadro NVS 135M, Quadro NVS 130M, Quadro NVS 450, Quadro NVS 420, Quadro NVS 295
۱٫۲ GT218, GT216, GT215 GeForce GT 340*, GeForce GT 330*, GeForce GT 320*, GeForce 315*, GeForce 310*, GeForce GT 240, GeForce GT 220, GeForce 210,
GeForce GTS 360M, GeForce GTS 350M, GeForce GT 335M, GeForce GT 330M, GeForce GT 325M, GeForce GT 240M, GeForce G210M, GeForce 310M, GeForce 305M
Quadro FX 380 Low Profile, Nvidia NVS 300, Quadro FX 1800M, Quadro FX 880M, Quadro FX 380M, Nvidia NVS 300, NVS 5100M, NVS 3100M, NVS 2100M, ION
۱٫۳ GT200, GT200b GeForce GTX 295, GTX 285, GTX 280, GeForce GTX 275, GeForce GTX 260 Quadro FX 5800, Quadro FX 4800, Quadro FX 4800 for Mac, Quadro FX 3800, Quadro CX, Quadro Plex 2200 D2 Tesla C1060, Tesla S1070, Tesla M1060
۲٫۰ Fermi GF100, GF110 GeForce GTX 590, GeForce GTX 580, GeForce GTX 570, GeForce GTX 480, GeForce GTX 470, GeForce GTX 465, GeForce GTX 480M Quadro 6000, Quadro 5000, Quadro 4000, Quadro 4000 for Mac, Quadro Plex 7000, Quadro 5010M, Quadro 5000M Tesla C2075, Tesla C2050/C2070, Tesla M2050/M2070/M2075/M2090
۲٫۱ GF104, GF106 GF108, GF114, GF116, GF117, GF119 GeForce GTX 560 Ti, GeForce GTX 550 Ti, GeForce GTX 460, GeForce GTS 450, GeForce GTS 450*, GeForce GT 640 (GDDR3), GeForce GT 630, GeForce GT 620, GeForce GT 610, GeForce GT 520, GeForce GT 440, GeForce GT 440*, GeForce GT 430, GeForce GT 430*, GeForce GT 420*,
GeForce GTX 675M, GeForce GTX 670M, GeForce GT 635M, GeForce GT 630M, GeForce GT 625M, GeForce GT 720M, GeForce GT 620M, GeForce 710M, GeForce 610M, GeForce 820M, GeForce GTX 580M, GeForce GTX 570M, GeForce GTX 560M, GeForce GT 555M, GeForce GT 550M, GeForce GT 540M, GeForce GT 525M, GeForce GT 520MX, GeForce GT 520M, GeForce GTX 485M, GeForce GTX 470M, GeForce GTX 460M, GeForce GT 445M, GeForce GT 435M, GeForce GT 420M, GeForce GT 415M, GeForce 710M, GeForce 410M
Quadro 2000, Quadro 2000D, Quadro 600, Quadro 4000M, Quadro 3000M, Quadro 2000M, Quadro 1000M, NVS 310, NVS 315, NVS 5400M, NVS 5200M, NVS 4200M
۳٫۰ Kepler GK104, GK106, GK107 GeForce GTX 770, GeForce GTX 760, GeForce GT 740, GeForce GTX 690, GeForce GTX 680, GeForce GTX 670, GeForce GTX 660 Ti, GeForce GTX 660, GeForce GTX 650 Ti BOOST, GeForce GTX 650 Ti, GeForce GTX 650,
GeForce GTX 880M, GeForce GTX 780M, GeForce GTX 770M, GeForce GTX 765M, GeForce GTX 760M, GeForce GTX 680MX, GeForce GTX 680M, GeForce GTX 675MX, GeForce GTX 670MX, GeForce GTX 660M, GeForce GT 750M, GeForce GT 650M, GeForce GT 745M, GeForce GT 645M, GeForce GT 740M, GeForce GT 730M, GeForce GT 640M, GeForce GT 640M LE, GeForce GT 735M, GeForce GT 730M
Quadro K5000, Quadro K4200, Quadro K4000, Quadro K2000, Quadro K2000D, Quadro K600, Quadro K420, Quadro K500M, Quadro K510M, Quadro K610M, Quadro K1000M, Quadro K2000M, Quadro K1100M, Quadro K2100M, Quadro K3000M, Quadro K3100M, Quadro K4000M, Quadro K5000M, Quadro K4100M, Quadro K5100M, NVS 510, Quadro 410 Tesla K10, GRID K340, GRID K520
۳٫۲ GK20A Tegra K1,
Jetson TK1
۳٫۵ GK110, GK208 GeForce GTX Titan Z, GeForce GTX Titan Black, GeForce GTX Titan, GeForce GTX 780 Ti, GeForce GTX 780, GeForce GT 640 (GDDR5), GeForce GT 630 v2, GeForce GT 730, GeForce GT 720, GeForce GT 710, GeForce GT 740M (64-bit, DDR3), GeForce GT 920M Quadro K6000, Quadro K5200 Tesla K40, Tesla K20x, Tesla K20
۳٫۷ GK210 Tesla K80
۵٫۰ Maxwell GM107, GM108 GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 960M, GeForce GTX 950M, GeForce 940M, GeForce 930M, GeForce GTX 860M, GeForce GTX 850M, GeForce 845M, GeForce 840M, GeForce 830M, GeForce GTX 870M Quadro K1200, Quadro K2200, Quadro K620, Quadro M2000M, Quadro M1000M, Quadro M600M, Quadro K620M, NVS 810 Tesla M10
۵٫۲ GM200, GM204, GM206 GeForce GTX Titan X, GeForce GTX 980 Ti, GeForce GTX 980, GeForce GTX 970, GeForce GTX 960, GeForce GTX 950, GeForce GTX 750 SE, GeForce GTX 980M, GeForce GTX 970M, GeForce GTX 965M Quadro M6000 24GB, Quadro M6000, Quadro M5000, Quadro M4000, Quadro M2000, Quadro M5500, Quadro M5000M, Quadro M4000M, Quadro M3000M Tesla M4, Tesla M40, Tesla M6, Tesla M60
۵٫۳ GM20B Tegra X1,
Jetson TX1,
DRIVE CX,
DRIVE PX
۶٫۰ Pascal GP100 Quadro GP100 Tesla P100
۶٫۱ GP102, GP104, GP106, GP107, GP108 Nvidia TITAN Xp, Titan X, GeForce GTX 1080 Ti, GTX 1080, GTX 1070 Ti, GTX 1070, GTX 1060, GTX 1050 Ti, GTX 1050, GT 1030, MX150 Quadro P6000, Quadro P5000, Quadro P4000, Quadro P2000, Quadro P1000, Quadro P600, Quadro P400, Quadro P5000(Mobile), Quadro P4000(Mobile), Quadro P3000(Mobile) Tesla P40, Tesla P6, Tesla P4
۶٫۲ GP10B[20] Jetson TX2, DRIVE PX 2
۷٫۰ Volta GV100 NVIDIA TITAN V Quadro GV100 Tesla V100
۷٫۲ GV10B[21] Jetson Xavier, DRIVE PX Xavier/Pegasus
with Xavier SoC
۷٫۵ Turing TU102, TU104, TU106 GeForce RTX 2080 Ti, RTX 2080, RTX 2070 Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000 Tesla T4

‘*’ – OEM-only products

 

 

DIGITS هم یه front-end برای caffe هست که کار رو خیلی راحت میکنه . هنوز رسما ورژن مبتنی بر ویندوزش نیومده اما من ورژنی که خودم برای ویندوز پورت کردم رو قرار دادم و تا وقتی که نسخه رسمیش بیاد میتونید از این استفاده کنید. DIGITs رو یه رابط گرافیکی کاربری برای کار با caffe در نظر بگیرید که بشما اجازه میده خیلی راحت دیتاست خودتون رو مشخص کنید و تنظیمات مختلف رو بصورت گرافیکی انجام بدید و نهایتا موقع training نرخ خطا و میزان دقت و… رو بصورت بلادرنگ تو نمودار بهتون نشون میده که خیلی عالیه . بعدش هم میتونید نمونه های دیگه رو تست کنید. مدلهای مبتنی بر caffe با این سازگار هستن.
اگر مشکلی پیش اومد میتونید از اینجا برای رفع اشکال استفاده کنید.

بعدی Torch هست. که سرعت خوبی داره و برخلاف Caffe مستندات خیلی خوبی هم داره . توسط فیس بوک و گوگل استفاده میشه و ویژگی های جدیدی که تو مقالات ارائه میشن معمولا قبل از همه پیاده میکنه . اطلاعات کامل در مورد تورچ و نحوه اجرا و خلاصه همه چیزش بصورت کامل اینجا هست. اگر هم سوالی بود میتونید از بخش پرسش و پاسخ ما یا پشتیبانی رسمیش اینجا بپرسید. تورچ در ویندوز پشتیبانی نمیشه . برنامه ای هم برای پشتیبانی ازش در ویندوز در حال حاضر ندارن . پس فقط محدود به لینوکس هست. در حال حاضر!. علاوه بر همه اینا رپر پایتونش رو هم چند ماهی میشه عرضه کرده و بسرعت داره پشتیبانیش از پایتون رو قوی تر میکنه. مستنداتش رو هم به همین شکل بخوبی داره تهیه میکنه. برای آموزش و اطلاعات بیشتر میتونید به pytorch.org مراجعه کنید.

MatConvNet‌ هم یه تولباکس برای متلب هست که اخیرا خوب داره کار میشه روش اما به اندازه دوتای قبلی (و ثیانو که زیر توضیح میدم) معروف نیست (شاید من زیاد به چشمم نخورده) ولی به هر حال منبع خوبی میتونه باشه برای کسایی که متلب کار هستن. این هم مثل Caffe دارای یه بخش هست که مدلهای از قبل train شده در اون وجود دارن (اینا از Caffe گرفته شده!). بنظر میاد داکیومنت بدی هم نداشته باشه هرچند من شخصا استفاده نکردم .آموزش نصبش رو آقای ملک زاده عزیز اینجا زحمت کشیدن و گذاشتن. هم در لینوکس و هم در ویندوز قابل استفاده اس.

Theano هم که مبتنی بر پایون هست و تعداد خیلی زیادی از فریم ورکهای حوزه دیپ لرنینگ از این مشتق شدن یا دارن استفاده میکنن. ثیانو در اصل یه کتابخونه پایتون هست که عملیات های ماتریسی  رو بخوبی انجام میده . (کلا پایتون بشدت تو حوزه data science استفاده میشه و اگه کسی میخواد تو این زمینه ها کار کنه خیلی خوبه که این زبان رو یادبگیره. تمام فریم ورکهایی رو هم که نام بردم همه اشون wrapper برای پایتون دارن و کلا کارها با پایتون خیلی خیلی راحتر هست). استفاده از ثیانو نسبت به گذشته خیلی کم شده.

CNTK توسط مایکروسافت چندماه پیش ارائه شده . هنوز یوزر بیس کافی نداره و بهتره برای کارهای جدی ازش استفاده نکنید که یوقت توش بمونید و کسی نباشه که کمکتون کنه . اگه وقت دارید و به موضوع تسلط خیلی خوبی دارید میتونید برید طرفش . ولی پیشنهاد من اینه اول با یکی از ابزارهای معروف که یوزر بیس خوبی هم دارن شروع کنید که اگر به مشکلی برخوردید زود برطرف کنید. بعد که تسلط و تجربه پیدا کردید حالا برید سراغ ابزارها و چارچوبهای دیگه برید.

DeepLearning4J هم مبتنی بر جاوا هست و یکی از فریم ورکهای خیلی خوب تو این زمینه است که مستندات خیلی خوبی داره هرچند شخصا تستش نکردم اما در نظر دارم حتما طرفش برم.این چارچوب بعنوان مثال در ناسا ازش استفاده میشه و سرعتش حداقل ۲ برابر از ثیانو بیشتره و برای کاربردهای توزیع شده و… ایده آل و فوق العاده اس. هم در ویندوز و هم در لینوکس براحتی میتونید از این چارچوب استفاده کنید.

Cuda-Convnet هم توسط الکس کریژوسکی نوشته شده (برنده رقابت ImageNet2012 , همون کسی که باعث و بانی شدت گرفتن دیپ لرنینگ شد!).

TensorFlow : یکی از بهترین های این حوزه است که بشدت داره پیشرفت میکنه و محبوب میشه. Tensorflow برای سناریو های توزیع شده چه مبتنی بر سی پی یو و چه جی پی یو بسیار عالی عمل میکنه و توسط گوگل پشتیبانی میشه.هم در لینوکس و هم در ویندوز (از ورژن ۰٫۱۲ به بعد ) پشتیبانی میشه . از ویندوز های ۷ و۱۰ و سرور۲۰۱۶ پشتیبانی میشه.

کتابخانه های سطح بالا (Keras ,TFLearn,TFSlim, Blocks ,…):
این کتابخونه ها که تعدادشون هم کم نیست به خودی خود عملیات های مربوط به آموزش و … رو انجام نمیدن . اینها در اصل یه frontend یا یه لایه بالایی هستن که از امکانات کتابخونه ها/فریم ورکهایی مثل تنسورفلو و ثیانو پشتیبانی میکنن و کار برنامه نویسی و کار کردن رو خیلی راحت تر میکنن.
Keras یه کتابخونه سطح بالاس که از ثیانو و تنسورفلو استفاده میکنه یعنی اگه شما با کراس کار کنید میتونید رو هرکدوم از این بک اندها سویچ کنید که از این لحاظ قابلیت خیلی خوبه. کراس مقبولیت خوبی بین کاربرا داره و مستندات بسیار خوبی هم داره.
TFLearn و TFSlim هم بطور اختصاصی به تنسورفلو اختصاص دارن . TFSlim که درون خود تنسورفلو هست ولی TFLearn جداگانه باید نصب بشه و مستندات بسیار خوبی داره .
Blocks هم یکی دیگه از فرانت اندهای مبتنی بر ثیانو هست.

من انشاالله سعی میکنم بعدا توضیحات مبسوطی در مورد اینها بدم و یه مقایسه ای هم بین اینها انجام بدم ولی فعلا بعلت ذیق وقت به همینقدر بسنده میکنم اگر سوالی هست بفرمایید اگه بلد بودم جواب میدم.