برترین دوره آموزش هوش مصنوعی فارسی

تعداد پسند ها : هنوز زوده
تاکنون 80 نفر این پست را مشاهده کرده اند

آموزش هوش مصنوعی به صورت گام به گام


برترین دوره آموزش هوش مصنوعی فارسی
دانشگاه مجازی

برترین دوره آموزش هوش مصنوعی فارسی

درباره ی مدرس و اساتید مدرس !

دوره ی آموزشی شبکه های عصبی که توسط سید علیرضا میرحبیبی در نظر گرفته شده است حاصل حضور ایشان در کلاس های درس پروفسور تمام، جناب آقای دکتر کریم فائز (عضو هیات علمی دانشگاه صنعتی امیرکبیر) از دانشمندان شناخته شده ی جهان در حوزه ی شناسایی الگو (Pattern Recognition) و شبکه های عصبی (Neural Networks) می باشد و فارغ التحصیل دانشگاه کالیفرنیا نیز هستند که البته استاد راهنمای ایشان نیز می باشند، همچنین حضور در کلاس های پروفسور محمد باقر منهاج (فارغ التحصیل دانشگاه OSU-OSU آمریکا) که ایشان نیز از اعضای هیات علمی دانشگاه صنعتی امیرکبیر و از دانشمندان برتر جهان در سال 2004 می باشند نیز تاثیر بسزایی در یادگیری میرحبیبی داشته است.

نصب درایور کارت گرافیک روی سیستم عامل اوبونتو 14.04 (بخش اول دوره شبکه عصبی)

با سلام و احترام خدمت علاقه مندان و دانشجویان دانشگاه اینترنتی بین المللی

این ویدیوی آموزشی در راستای آموزش های شبکه عصبی عمیق می باشد، و در واقع بخش اول این مجموعه از آموزش ها است، مدرس این دوره سید علیرضا میرحبیبی، مخترع، پژوهشگر و محقق در حوزه ی هوش مصنوعی می باشد، با توجه به کاربرد های روز افزون شبکه های عصبی بخصوص مباحث مربوط به Deep Learning، این حوزه از آموزش ها نیاز بسیاری از دانشجویان تحصیلات تکمیلی می باشد.

البته این ویدیو به عنوان یکی از پیش نیاز های یادگیری عمیق (دیپ لرنینگ)  آموزش داده شده است، زمانی که نیاز به کار با CUDA باشد، نیاز به نصب درایور کرت گرافیک خواهید داشت، این ویدیو آموزش نصب درایور کارت گرافیک های Geforce را شامل می شود، و در آن نسخه ی مناسب و تست شده برای تنظیم روی اوبونتو 14.04 جهت بهره گیری از قدرت پردازشی GPU ارائه شده است. با مشاهده ی این دوره ی آموزشی کوتاه، از این پس می تواند در تمامی کارهای تحقیقاتی خود که نیاز به استفاده از GPU و سیستم عامل لینوکس دارند به راحتی درایور خود را فعال سازی کرده و از مزایای استفاده از کتابخانه های پرکاربردی مانند CUDA یا cuDNN بهره مند شوید.

نصب درایور کارت گرافیک روی سیستم عامل اوبونتو 

شبکه عصبی

نصب درایور کارت گرافیک روی سیستم عامل اوبونتو 14.04

استفاده از کارت گرافیک (GPU) برای پردازش

با استفاده از دیدگاه GPGPU (General-Purpose Computing on Graphics Processing Units) می توان از کارت گرافیک برای انجام پردازش های الگوریتم های استفاده کرد.

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

 

پلتفرم CUDA برای کار با زبان های برنامه نویسی ای مانند C، C++ و فرترن طراحی شده است. این موارد دسترسی آسان تر به منابع مربوط به واحد پردازش گرافیکی را آسان تر می کند و در نتیجه به متخصصان حوزه ی پردازش موازی اجازه ی استفاده از منابع GPU را می دهد، به صورت واضح تر می توان گفت API هایی مانند Direct3D و OpenGL که نیازمند مهارت های بالایی در برنامه نویسی گرافیکی هستند نیز می توانند از آن بهره ببرند.همچنین، CUDA از فریم ورک هایی مانند OpenACC و OpenCL پشتیبانی می کند.

پیشینه واحد پردازش گرافیکی

واحد پردازش گرافیکی (Graphics processing unit) به عنوان یک پردازشگر ویژه ی کامپیوتری، تقاضا های در لحظه (real-time) دارای رزولوشن بالا (high-resolution) مربوط به وظایف محاسباتی سنگین گرافیک های 3 بعدی (3D graphics) را انجام می دهد.

تا سال 2012، پردازنده های گرافیکی به سیستم های چند هسته ای بسیار موازی تبدیل شده بودند که امکان دستکاری بسیار بالایی را از بلوک های بزرگ داده فراهم می آورد. این نوع طراحی بسیار تاثیر گذار تر از واحد پردازش مرکزی همه منظوره (CPU) برای الگوریتم ها در شرایطی است که پردازش بلوک های بزرگ داده به طور موازی انجام می شود، مانند:

  • الگوریتم حداکثر جریان push-relabel -    push-relabel maximum flow algorithm
  • الگوریتم مرتب کردن سریع لیست های بزرگ -     fast sort algorithms of large lists
  • تبدیل موجک دو بعدی -     two-dimensional fast wavelet transform
  • شبیه سازی دینامیک مولکولی -     molecular dynamics simulations

نصب درایور کارت گرافیک در اوبونتو

برای نصب و گرفتن عملکرد صحیح از پلتفرم کودا می بایست درایور کارت گرافیک ها همان GPU را به درستی نصب کنید، نصب درایور کارت گرافیک در UBUNTU 14.04 LTS خود می تواند یک چالش باشد، اما با آموزش هایی که در ابتدای این ویدیوی آموزشی ارائه شده است به راحتی می توانید درایور کارت گرافیک خود را نصب کرده و به نرم افزار مدیریت کارت گرافیک ارائه شده توسط شرکت NVIDIA درسترسی پیدا کنید.

مشخصات سیستمی که در این آموزش برای تست مباحث مربوط به یادگیری عمیق استفاده شده است:

CPU: Intel

Ram: 8GB-DDR2

Graphic: Geforce GT710 (MSI) 2GB

HDD: 40GB

آزمایشات سخت افزاری ما:

جهت استفاده از شبکه های عصبی و اجرای الگوریتم های آنها، مانند Object Detector ها، مثل Yolo9000 و یا Faster R-CNN بهتر است از یک GPU با توان بالاتر از 3 گیگابایت استفاده کنید. البته با توجه به آزمایشات انجام شده که نتایج آنها به طور کامل در ویدیو های دوره های بعدی (در ادامه ی همین آموزش های یادگیری عمیق) ارائه شد، نشان دادیم که با یک کارت گرافیک 2 گیگابایتی می توان بسیاری از شبکه های عصبی را اجرا کرد، برای مثال با این کارت گرافیک می توان شبکه ی ZF و یا بخش هایی که به صورت مینیمال در Object Detector معروف YOLO یا همان Darknet ارائه شده اند را اجرا کرد.

البته نشان دادیم (در ویدیو های بعدی در رابطه با یادگیری عمیق) که چطور می توانید Object Detector های سنگینی مانند YOLO9000 که با نام دارک نت (Darknet) هم شناخته می شود را با تغییر یکسری ویژگی ها با همین کارت گرافیک 2 گیگابایتی اجرا کرد.

مواردی که در دوره ی بعدی (این دوره) در ادامه ی آموزش های یادگیری عمیق (Deep Learning) می توانید بررسی کنید.

درباره ی تکنولوژی کودا (CUDA)

Cuda یک پلتفرم محاسبات موازی و محیط برنامه نویسی نرم افزار های کاربردی است که توسط شرکت Nvidia ارائه شده است.

کودا به توسعه دهندگان نرم افزار و مهندسان نرم افزار اجازه ی فعال سازی ویژگی استفاده از کارت گرافیک پرای اهداف پردازشی عمومی را می دهد، در واقع با کودا می توانید الگوریتم های خود را سریعتر اجرا کنید، برای مثال زمانی که Object Detector با نام YOLO9000 را می خواهید روی یک سیستم عادی با استفاده از قدرت پردازشی CPU اجرا کنید، ممکن است تا 15 دقیقه انجام مراحل پردازشی آن روی یک شبکه عصبی از قبل Train شده به طول بیانجامد، اما زمانی که نویسنده ی این پست با استفاده از مدل کودا و با فعال سازی کودا در یولو 9000 اقدام به اجرای سورس کد Object Detector معروف YOLO9000 کرد چیزی در حدود 14 ثانیه زمان لازم بود تا با یک کارت گرافیک معمولی دارای چیپست جیفورس با مدل GT710 این سورس کد را اجرا کند! پس به خوبی تفاوت را حس کردید! همچنین زمانی که قصد استفاده از Object Detector کاربردی با نام Faster RCNN یا سایر موارد از این خانواده را دارید نیز می توانید از این آموزش استفاده فرمایید.

 

توانایی های برنامه نویسی

پلتفرم CUDA برای توسعه دهندگان نرم افزار از طریق کتابخانه های شتاب دهنده کودا (CUDA-accelerated) ، دستورالعمل کامپایلر از قبیل OpenACC و فرمت های مربوط به زبان های برنامه نویسی استاندارد صنعتی شامل C، C ++ و Fortran قابل دسترسی است. برنامه نویسان C / C ++ می توانند از CUDA C / C ++ استفاده کنند، کامپایلر nvcc، کامپایلر C / C ++ مبتنی بر LLVM مبتنی بر Nvidia است. همچنین برنامه نویسان Fortran می توانند از CUDA Fortran استفاده کنند که با کامپایلر PGI CUDA Fortran  از The Portland Group گردآوری شده است.

مثالی از روند جریان پردازشی CUDA

  • کپی کردن داده از حافظه ی اصلی به حافظه ی GPU
  • CPU آغاز کننده ی هسته ی محاسباتی GPU می باشد
  • هسته های GPU کودا Kernel را به صورت موازی اجزا می کنند
  • کپی کردن داده های حاصله از حافظه ی GPU به حافظه ی اصلی
  • کاربردهای CUDA در بازی سازی

در صنعت بازی سازی

پردازنده های گرافیکی برای رندر گرافیکی و برای محاسبات فیزیک بازی (اثرات فیزیکی مانند آوار، دود، آتش، مایعات) مورد استفاده قرار می گیرند. مثالها شامل PhysX و Bullet هستند. CUDA همچنین برای تسریع کاربرد برنامه های غیر گرافیکی در محاسبات بیولوژیکی، رمزنگاری و سایر زمینه ها به ترتیب موارد ذکر شده استفاده می شود.

و ... (مشاهده ی متن کامل در آموزش بعدی - به زودی درج می گردد)

 

آموزش نصب CUDA (بخش دوم دوره ی شبکه های عصبی)

یادگیری ماشین

یادگیری ماشین

با سلام و احترام خدمت علاقه مندان و دانشجویان دانشگاه اینترنتی بین المللی (دانشگاه خوارزمی)

این ویدیوی آموزشی در راستای آموزش های شبکه عصبی عمیق می باشد، و در واقع بخش اول این مجموعه از آموزش ها است، مدرس این دوره سید علیرضا میرحبیبی، مخترع، پژوهشگر و محقق در حوزه ی هوش مصنوعی می باشد، با توجه به کاربرد های روز افزون شبکه های عصبی بخصوص مباحث مربوط به Deep Learning، این حوزه از آموزش ها نیاز بسیاری از دانشجویان تحصیلات تکمیلی می باشد.

آموزش تنسور فلو

البته این ویدیو به عنوان یکی از پیش نیاز های یادگیری عمیق (دیپ لرنینگ)  آموزش داده شده است، زمانی که نیاز به کار با CUDA باشد، نیاز به نصب درایور کارت گرافیک خواهید داشت، این ویدیو آموزش نصب درایور کارت گرافیک های Geforce را شامل می شود، و در آن نسخه ی مناسب و تست شده برای تنظیم روی اوبونتو 14.04 جهت استفاده از قدرت پردازشی GPU ارائه شده است. با مشاهده ی دوره ی آموزشی قبلی، از این پس می تواند در تمامی کارهای تحقیقاتی خود که نیاز به استفاده از GPU و سیستم عامل لینوکس دارند به راحتی درایور خود را فعال سازی کرده و از مزایای استفاده از کتابخانه های پرکاربردی مانند CUDA یا cuDNN بهره مند شوی

 تاریخچه :

 کودا (CUDA)

Cuda یک پلتفرم محاسبات موازی و محیط برنامه نویسی نرم افزار های کاربردی است که توسط شرکت Nvidia ارائه شده است.

کودا به توسعه دهندگان نرم افزار و مهندسان نرم افزار اجازه ی فعال سازی ویژگی استفاده از کارت گرافیک پرای اهداف پردازشی عمومی را می دهد، در واقع با کودا می توانید الگوریتم های خود را سریعتر اجرا کنید، برای مثال زمانی که Object Detector با نام YOLO9000 را می خواهید روی یک سیستم عادی با استفاده از قدرت پردازشی CPU اجرا کنید، ممکن است تا 15 دقیقه انجام مراحل پردازشی آن روی یک شبکه عصبی از قبل Train شده به طول بیانجامد، اما زمانی که نویسنده ی این پست با استفاده از مدل کودا و با فعال سازی کودا در یولو 9000 اقدام به اجرای سورس کد Object Detector معروف YOLO کرد چیزی در حدود 14 ثانیه زمان لازم بود تا با یک کارت گرافیک معمولی دارای چیپست جیفورس با مدل GT710 این سورس کد را اجرا کند! پس به خوبی تفاوت را حس کردید!

 

استفاده از کارت گرافیک (GPU) برای پردازش

با استفاده از دیدگاه GPGPU (General-Purpose Computing on Graphics Processing Units) می توان از کارت گرافیک برای انجام پردازش های الگوریتم ها استفاده کرد.

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

 

پلتفرم CUDA برای کار با زبان های برنامه نویسی ای مانند C، C++ و فرترن طراحی شده است. این موارد دسترسی آسان تر به منابع مربوط به واحد پردازش گرافیکی را آسان تر می کند و در نتیجه به متخصصان حوزه ی پردازش موازی اجازه ی استفاده از منابع GPU را می دهد، به صورت واضح تر می توان گفت API هایی مانند Direct3D و OpenGL که نیازمند مهارت های بالایی در برنامه نویسی گرافیکی هستند نیز می توانند از آن بهره ببرند.همچنین، CUDA از فریم ورک هایی مانند OpenACC و OpenCL پشتیبانی می کند.

پیشینه واحد پردازش گرافیکی

واحد پردازش گرافیکی (Graphics processing unit) به عنوان یک پردازشگر ویژه ی کامپیوتری، تقاضا های در لحظه (real-time) دارای رزولوشن بالا (high-resolution) مربوط به وظایف محاسباتی سنگین گرافیک های 3 بعدی (3D graphics) را انجام می دهد.

تا سال 2012، پردازنده های گرافیکی به سیستم های چند هسته ای بسیار موازی تبدیل شده بودند که امکان دستکاری بسیار بالایی را از بلوک های بزرگ داده فراهم می آورد. این نوع طراحی بسیار تاثیر گذار تر از واحد پردازش مرکزی همه منظوره (CPU) برای الگوریتم ها در شرایطی است که پردازش بلوک های بزرگ داده به طور موازی انجام می شود، مانند:

  • الگوریتم حداکثر جریان push-relabel -    push-relabel maximum flow algorithm
  • الگوریتم مرتب کردن سریع لیست های بزرگ -     fast sort algorithms of large lists
  • تبدیل موجک دو بعدی -     two-dimensional fast wavelet transform
  • شبیه سازی دینامیک مولکولی -     molecular dynamics simulations

نصب درایور کارت گرافیک در اوبونتو

برای نصب و گرفتن عملکرد صحیح از پلتفرم کودا می بایست درایور کارت گرافیک ها همان GPU را به درستی نصب کنید، نصب درایور کارت گرافیک در UBUNTU 14.04 LTS خود می تواند یک چالش باشد، اما با آموزش هایی که در ابتدای این ویدیوی آموزشی ارائه شده است به راحتی می توانید درایور کارت گرافیک خود را نصب کرده و به نرم افزار مدیریت کارت گرافیک ارائه شده توسط شرکت NVIDIA دسترسی پیدا کنید.

توانایی های برنامه نویسی

پلتفرم CUDA برای توسعه دهندگان نرم افزار از طریق کتابخانه های شتاب دهنده کودا (CUDA-accelerated) ، دستورالعمل کامپایلر از قبیل OpenACC و فرمت های مربوط به زبان های برنامه نویسی استاندارد صنعتی شامل C، C ++ و Fortran قابل دسترسی است. برنامه نویسان C / C ++ می توانند از CUDA C / C ++ استفاده کنند، کامپایلر nvcc، کامپایلر C / C ++ مبتنی بر LLVM مبتنی بر Nvidia است. همچنین برنامه نویسان Fortran می توانند از CUDA Fortran استفاده کنند که با کامپایلر PGI CUDA Fortran  از The Portland Group گردآوری شده است.

مثالی از روند جریان پردازشی CUDA

  • کپی کردن داده از حافظه ی اصلی به حافظه ی GPU
  • CPU آغاز کننده ی هسته ی محاسباتی GPU می باشد
  • هسته های GPU کودا Kernel را به صورت موازی اجزا می کنند
  • کپی کردن داده های حاصله از حافظه ی GPU به حافظه ی اصلی

علاوه بر کتابخانه ها، دستورالعمل کامپایلر، CUDA C / C ++  و  CUDA Fortran، پلتفرم CUDA از سایر محیط های محاسباتی مانند OpenCL گروه  Khronos،  DirectCompute مایکروسافت، OpenGL  و C++ AMP پشتیبانی می کند. همچنین پلاگین های دیگری نیز برای  Python، Perl، Fortran، Java، Ruby، Lua، Common Lisp، Haskell، R، MATLAB، IDL، Julia و پشتبانی بومی در Mathematica در دسترس هستند.

 

CUDA ارائه کننده ی API ها در سطوح پایین تا بالا می باشد. اولین CUDA SDK در 15 فوریه سال 2007، برای ماکروسافت ویندوز و لینوکس ارائه شد. بخش پشتیبانی Mac OS X بعدا ورژن 2.0  را که بعدا با نسخه ی بتا جایگزین شد در 14 فوریه ی سال 2008 منتشر کرد. CUDA با تمام GPU های Nvidia از سری G8X شامل GeForce، Quadro و Tesla line کار می کند. CUDA با اکثر سیستم عامل های استاندارد نیز سازگار است.

CUDA نسخه ی 8 با کتابخانه های زیر همراه می باشد (برای کامپایل کردن و اجرا)

  • CUBLAS – کتابخانه ی زیر روال های مربوط به جبر خطی به صورت پایه ای برای CUDA
  • CUDART – کتابخانه ی RunTime برای CUDA
  • CUFFT – کتابخانه ی تبدیل سریع فوریه(Fast Fourier Transform)  CUDA
  • CURAND – کتابخانه ی تولید اعداد تصادفی برای CUDA
  • CUSOLVER - مجموعه CUDA مبتنی بر حل کننده های مستقیم به صورت sparse و dense است
  • CUSPARSE – کتابخانه ی مربوط به ماتریس خلوت (sparse) برای CUDA می باشد
  • NPP – کتابخانه ی توانایی های اولیه ی NVIDIA
  • NVGRAPH – کتابخانه ی تحلیل نمودار  NVIDIA
  • NVML – کتابخانه ی مدیریت NVIDIA
  • NVRTCکتابخانه ی RunTime Compilation برای CUDA C++

 

CUDA نسخه ی 8 با سایر امکانات نرم افزاری به ترتیب زیر ارائه می شود

  • nView – نرم افزار nView برای مدیریت دسکتاپ
  • NVWMI – جعبه ابزار تجاری مدیریتی NVIDIA
  • PhysXGameWorks PhysX یک موتور فیزیک مالتی پلتفرم (قابل اجرا روی اکثر پلتفرم ها) برای بازی ها است

CUDA 9.0 – 9.2  با کامپوننت های زیر ارائه می گردد

  • CUTLASS 1.0 الگوریتم سفارشی برای جبر خطی
  • N – NVIDIA که یک دیکد کننده ی ویدیو می باشد در CUDA 9.2 منسوخ می گردد، این کامپوننت هم اکنون در SDK کدک های ویدیویی NVIDIA موجود می باشد.

CUDA نسخه ی 10 با سایر کامپوننت ها به ترتیب زیر ارائه می شود

  • nvJPEGپردازش کننده ی هایبرید JPEG

 

کاربردهای CUDA در بازی

در صنعت بازی کامپیوتر، پردازنده های گرافیکی برای رندر گرافیکی و برای محاسبات فیزیک بازی (اثرات فیزیکی مانند آوار، دود، آتش، مایعات) مورد استفاده قرار می گیرند. مثالها شامل PhysX و Bullet هستند. CUDA همچنین برای تسریع کاربرد برنامه های غیر گرافیکی در محاسبات بیولوژیکی، رمزنگاری و سایر زمینه ها به ترتیب موارد ذکر شده استفاده می شود.

تنسور فلو

با استفاده از کودا می توان موارد مربوط به TensorFlow را نیز با سرعت بیشتری با استفاده از gpu اجرا کرد.

Object Detector ها

object detector های معروفی همچون faster-rcnn یا yolo را می توان با استفاده از cuda با سرعت بسیار بیشتری اجرا کرد.

 

آموزش نصب cuDNN (بخش سوم دوره ی شبکه های عصبی)

آموزش نصب cuDNN

(TensorFlow –– یادگیری عمیق Deep Learning)

کتابخانه یادگیری عمیق CUDA که cuDNN نامیده می شود یک کتابخانه ی شتابدهنده بر اساس پردازنده ی کارت گرافیک یا همان GPU می باشد. cuDNN ارائه کننده ی الحاقاتی است که به طور خاص برای بکارگیری در کاربردهای استاندارد از قبیل forward convolution و backward convolution، pooling، normalization و activation layer ها تنظیم شده است.

آموزش تنسور فلو cucnn

محققان یادگیری عمیق (deep learning) و توسعه دهندگان فریم ورک ها در سطح جهان به cuDNN جهت انجام عملیات با بالاترین کارایی با استفاده واحد پردازش گرافیکی GPU وابسته هستند. cuDNN به آنها اجازه می دهد تا روی یادگیری شبکه های عصبی متمرکز شوند و همچنین اپلیکیشن هایی را بر این اساس تولید کنند، این مورد باعث می شود نیاز به وقت گذاشتن روی تنظیات سطح پایین  مربوط به کارایی GPU و در واقع تنظیم کردن آن نباشد. cuDNN به صورت گسترده از فریم ورک های یادگیری عمیق مانند Caffe، Caffe2، Chainer، Keras، MATLAB، MxNet، TensorFlow و PyTorch است، برای دسترسی به محتویات فریم ورک یادگیری عمیق شرکت NVIDIA بخش GPU CLOUD وبسایت شرکت NVIDIA را بررسی کنید (لینک در بخش اول لینک ها زیر همین پست موجود می باشد).

آموزش cucnn

برخی از کاربردهای cuDNN در مبحث یادگیری عمیق (شبکه های عصبی)

  • Convolution forward و Convolution forward شامل cross-correlation
  • سرکشی پیش رونده و برگشتی Pooling forward and backward
  • روش سافت مکس پیش رونده و بازگشتی Softmax forward and backward
  • فعال ساز نرون به صورت پیش رونده و بازگشتی شامل:
  • Rectified linear (ReLU)
  • زیگموییدی Sigmoid
  • هایپر بولیک تانژانت Hyperbolic tangent (TANH)
  • توابع مبدل تنزور Tensor transformation functions
  • روش های LRN, LCN and batch normalization forward and backward

روتین های پیچیده (convolution) در cuDNN یک کارایی تاثیر گذار را یا استفاده از سریع ترین GEMM (ضرب مارتریس)  را با توجه به شامل بودن برخی روتین هایی که باعث کاهش تاثیر گذار استفاده از حافظه می شوند ایجاد می کند.

ویژگی های آخرین نسخه ی cuDNN یعنی نسخه 7.5

فریم ورک یادگیری عمیق cuDNN نسخه ی 7.5 و بالاتر قادر به ارائه ی ویژگی ها و کارایی های جدیدتر برای معماری های Volta و Turning می باشد که در نتیجه عملیات ترینینگ یا همان یادگیری شبکه های عصبی را سرعت می بخشد. مهمترین موارد ارائه شده در نسخه ی 7.5 فریم ورک cuDNN شامل موارد زیر می باشد:

  • ارتقا  سرعت یادگیری سه برابری برای شبکه های ResNet-50 و GNMT روی کارت گرافیک Tesla V100 در مقایسه با Tesla P100
  • بهبود قابلیت های جداسازی پیچیده به صورت depth-wise برای یادگیری (Training) مدل هایی مثل Xception (اکسپشن) و Mobilenet (موبایل نت)
  • دید مالتی هد برای تنظیم کردن مدل هایی مثل Transformer (ترنسفورمر)
  • API های جدید tensor folding برای کارایی های تنظیم شده در مدل هایی مثل Mask R-CNN، GAN ها و DeepSpeech2

در صورت تمایل می توانید آخرین نکات مربوط به نسخه های cuDNN را با کلیک روی  لینک ارائه شده در بخش اول رفرنس ها دریافت کنید.

همچنین برای دریافت نسخه های دیگر فریم ورک یادگیری عمیق cuDNN می توانید به صفحه ی مربوطه در سایت NVIDIA مراجعه فرمایید.

نکته در مورد نحوه ی دریافت فریم ورک یادگیری عمیق کودا cuDNN: برای دانلود این فریم ورک می باید از ip کشور های دیگر وارد سایت NVIDIA شوید و اقدام به عضویت فرمایید، عضویت در این سایت رایگان بوده و با چند کلیک قابل انجام است، توجه داشته باشید که به خاطر مسائل مربوط به تحریم های جمهوری اسلامی ایران بهتر است از آدرس ایمیل غیر آکادمیک (غیر دانشگاهی) استفاده فرمایید و به راحتی می توانید با یک آدرس ایمیل Gmail یا Yahoo اقدام به عضویت فرمایید، در ضمن تمامی موارد مربوط به ثبت نام نیز در ویدیو ی ارائه شده در این جلسه ی آموزشی توضیح داده شده و می توانید به راحتی با دنبال کردن ویدیو اقدام به عضویت در سایت NVIDIA، دریافت نسخه ی لازمه از فریم ورک یادگیری عمیق و نصب این فریم ورک فرمایید.

لازم به ذکر است به دلیل سازگاری با اوبونتو 14.04 و مجموعه ی سایر موارد یادگیری عمیق از نسخه ی 6 cuDNN استفاده کردیم و موفق به اجرای این فریم ورک شدیم.

آموزش نصب شناسایی کننده YOLO 9000 (بخش چهارم دوره ی شبکه های عصبی)

 

در این دوره، نحوه نصب yolo9000 که یک شناسایی کننده اشیا می باشد توسط مهندس سید علیرضا میرحبیبی آموزش داده شده است و یکی از آموزش های منحصر بفرد و  اختصاصی دانشگاه اینترنتی می باشد.
YOLO9000 یکی از آخرین و بروز ترین سیستم های شناسایی اشیا (Object Detector) می باشد که علاوه بر Real time بودن قادر به شناسایی بیش از 9000 موضوع در بین اشیا می باشد، Yolo 9000 یکی از بهترین شناسایی کننده ها می باشد که آن را می توان با Fast RCNN و نسخه ی جدید آن یعنی Faster RCNN مقایسه کرد که عملکرد فوق العاده ای در مباحثی همشون Captioning دارند، اما نکته مهم در رابطه با YOLO 9000 سبک بودن و نصب راحت تر آن است، همچنین اگر بخواهیم از نظر علمی نتایج ارزیابی علمی آن را ارائه کنیم باید بگوییم که این آبجکت دتکتور توانسته به mAP 16 روی مجموعه Validation ایمیج نت روی 200 کلاس برسد، همچنین این شناسایی کننده قادر به تشخیص بیش از 9000 کلاس از اشیا می باشد و با دیتاست های مختلفی آموزش دیده است.

آموزش نصب این شناسایی کننده الگو روی سیستم عامل لینوکس اوبونتو (Ubuntu 14.04) توسط مهندس سید علیرضا میرحبیبی ارائه شده است.

اطلاعات بیشتر در رابطه با نتایج ارزیابی علمی YOLO 9000 در تصاویر محصول قرار داده شده است که محققان و اساتید دانشگاه می توانند علاوه بر مراجعه به وبسایت های مرجع مانند گوگل اسکولار از این نتایج نیز استفاده کنند.

 

آموزش استفاده از شناسایی کننده YOLO 9000 (بخش پنجم دوره ی شبکه های عصبی)

در این دوره آموزشی نحوه کار با شناسایی کننده YOLO 9000 که یکی از سریع ترین شناسایی کننده های (Object detector) موجود می باشد آموزش داده شده است.

آموزش نصب object detector yolo 9000

پس از نصب دارک نت (Darknet) و دانلود وزن های از پیش آموزش داده شده (Pre-trained weights) در مبحث شبکه های عصبی که برای راحتی کار استافده کنندگان از این آبجکت دتکتور قبلا توسط کامپیوتر های قدرتمندی آموزش (Train) داده شده است، شروع به عملیات تست (Test) در شبکه های عصبی می کنیم، که پس از تست کلاس های (Class) تشخیص داده شده برای هر شی (Object) به همراه احتمال درست تشخیص داده شدن آن شی در کلاس تشخیص داده شده (Probability value) ارائه می گردد، این موارد در تصاویر این دوره آموزشی نیز تا حدی مشخص می باشند.

آموزش نصب Darknet

 

آموزش نصب دارک نت vgg conv

 

آموزش آجرای شبکه عصبی vgg

سید علیرضا میرحبیبی، محقق، مخترع و مدرس شبکه های عصبی در روند تست این شناسایی کننده از تصاویر مربوط به بانک داده (Dataset) ویژوال ژنوم (Visual Genome) و سایر دیتاست های موجود استفاده کرده است که البته چند تصویر مورد استفاده در روند تست نیز از دوربین شخصی دریافت شده است تا نشان دهنده ی مستحکم بودن (Robost) این شناسایی کننده در برابر فرمت های مختلف و سایز های متفاوت تصاویر می باشد.

یولو 9000

در مباحث مربوط به بینایی کامپیوتر می توان به اهمیت عملکرد در لحظه (Real time) یک شناسایی کننده شی در کاربرد های صنعتی و تحقیقاتی اشاره کرد که شناسایی کننده YOLO 9000 یکی از سبک ترین و کاملترین شناسایی کننده های می باشد که نسخه ی 9000 آن توانایی تشخیص بیش از 9000 کلاس شی را به صورت real time را دارا می باشد.

یولو 9000 سریع ترین شناسایی کننده ی اشیا

آموزش نصب یولو ۹۰۰۰ دارک نت tiny Darknet YOLO 9000 (بخش ششم دوره ی شبکه های عصبی)

در این ویدیو آموزش نصب شناسایی کننده تصاویر با نام دارک نت یا همان تاینی دارک نت که با شهرت یولو ۹۰۰۰ نام گرفته است را به شما معرفی خواهیم کرد.

مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو فقط به نصب این شناسایی کننده و اجرای تاینی یولو ۹۰۰۰ که خروجی متنی به همراه درصد احتمالات تشخیص مربوط به هر کلاس را ارایه می کند بسنده شده است.

آموزش نصب tiny darknet

اطلاعات کلی در رابطه با شناسایی اشیا را می توانید در متن انگلیسی زیر مطالعه فرمایید:

 

Object detection

Object detection is a computer technology related to computer vision and image processing that deals with detecting instances of semantic objects of a certain class (such as humans, buildings, or cars) in digital images and videos. Well-researched domains of object detection include face detection and pedestrian detection. Object detection has applications in many areas of computer vision, including image retrieval and video surveillance.

Uses

It is widely used in computer vision tasks such as image annotation, activity recognition, face detection, face recognition, video object co-segmentation. It is also used in tracking objects, for example tracking a ball during a football match, tracking movement of a cricket bat, or tracking a person in a video.

Concept

Every object class has its own special features that helps in classifying the class – for example all circles are round. Object class detection uses these special features. For example, when looking for circles, objects that are at a particular distance from a point (i.e. the center) are sought. Similarly, when looking for squares, objects that are perpendicular at corners and have equal side lengths are needed. A similar approach is used for face identification where eyes, nose, and lips can be found and features like skin color and distance between eyes can be found.

Methods

Methods for object detection generally fall into either machine learning-based approaches or deep learning-based approaches. For Machine Learning approaches, it becomes necessary to first define features using one of the methods below, then using a technique such as support vector machine (SVM) to do the classification. On the other hand, deep learning techniques are able to do end-to-end object detection without specifically defining features, and are typically based on convolutional neural networks (CNN).

  • Machine learning approaches:
    • Viola–Jones object detection framework based on Haar features
    • Scale-invariant feature transform (SIFT)
    • Histogram of oriented gradients (HOG) features
  • Deep learning approaches:
    • Region Proposals (R-CNN, Fast R-CNN, Faster R-CNN, cascade R-CNN.)
    • Single Shot MultiBox Detector (SSD)
    • You Only Look Once (YOLO)
    • Single-Shot Refinement Neural Network for Object Detection (RefineDet)
    • Retina-Net [15][9]
    • Deformable convolutional networks

 

آموزش نصب کافه فریم ورک یادگیری عمیق دانشگاه کالیفرنیا برکلی (بخش هفتم دوره ی شبکه های عصبی)

در این ویدیو آموزش نصب فریم ورک یادگیری عمیق را که با نام کافه معروف است به شما معرفی خواهیم کرد.

مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو که بیش از ۱ ساعت و نیم می باشد به نصب این فریم ورک بسیار بسیار پرکاربرد پرداخته شده است.

این فریم ورک در زمان نصب روی یک ماشین با پردازنده ۲ هسته ای و ۸ گیگابایت رم ddr2 و یک پردازنده گرافیکی ۲ گیگابایت با برند جی فورس جی تی ۷۱۰ نصب و کانفیگ گردیده است که یک هارد دیسک ۸۰ گیگابایتی هم به عنوان دیسک اصلی برای نصب سیستم عامل لینوکس Ubuntu 14.04.6 LTS (Trusty Tahr) استفاده شده است.

آموزش نصب فریم ورک cafe شبکه عصبی

اطلاعات کلی در رابطه با Caffe را می توانید در متن انگلیسی زیر مطالعه فرمایید:

About Caffe

CAFFE (Convolutional Architecture for Fast Feature Embedding) is a deep learning framework, originally developed at University of California, Berkeley. It is open source, under a BSD license. It is written in C++, with a Python interface.

Features

Caffe supports many different types of deep learning architectures geared towards image classification and image segmentation. It supports CNN, RCNN, LSTM and fully connected neural network designs. Caffe supports GPU- and CPU-based acceleration computational kernel libraries such as NVIDIA cuDNN and Intel MKL.

Applications

Caffe is being used in academic research projects, startup prototypes, and even large-scale industrial applications in vision, speech, and multimedia. Yahoo! has also integrated caffe with Apache Spark to create CaffeOnSpark, a distributed deep learning framework.

Caffe2

In April 2017, Facebook announced Caffe2, which included new features such as Recurrent Neural Networks. At the end of March 2018, Caffe2 was merged into PyTorch.

آموزش نصب شناسایی کننده Faster R-CNN | تشخیص اشیا در لحظه به صورت Real-Time (بخش هشتم دوره ی شبکه های عصبی)

در این ویدیو آموزش نصب شناسایی کننده Faster R-CNN | تشخیص اشیا در لحظه به صورت  Real-Time را به شما معرفی خواهیم کرد.

مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو که ۲ ساعت و 18 دقیقه می باشد به نصب این شبکه عصبی مربوط به آبجکت دتکشن بسیار بسیار پرکاربرد پرداخته شده است.

این کتابخانه در زمان نصب روی یک ماشین با پردازنده ۲ هسته ای و ۸ گیگابایت رم ddr2 و یک پردازنده گرافیکی ۲ گیگابایت با برند جی فورس جی تی ۷۱۰ نصب و کانفیگ گردیده است که یک هارد دیسک ۸۰ گیگابایتی هم به عنوان دیسک اصلی برای نصب سیستم عامل لینوکس Ubuntu 14.04.6 LTS (Trusty Tahr) استفاده شده است.

آموزش نصب faster-rcnn

اطلاعات کلی در رابطه با شناسایی کننده فستر آر سی ان ان را می توانید در متن انگلیسی زیر مطالعه فرمایید:


Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

State-of-the-art object detection networks depend on region proposal algorithms to hypothesize object locations. Advances like SPPnet and Fast R-CNN have reduced the running time of these detection networks, exposing region proposal computation as a bottleneck. In this work, we introduce a Region Proposal Network (RPN) that shares full-image convolutional features with the detection network, thus enabling nearly cost-free region proposals. An RPN is a fully convolutional network that simultaneously predicts object bounds and objectness scores at each position. The RPN is trained end-to-end to generate high-quality region proposals, which are used by Fast R-CNN for detection. We further merge RPN and Fast R-CNN into a single network by sharing their convolutional features---using the recently popular terminology of neural networks with attention mechanisms, the RPN component tells the unified network where to look. For the very deep VGG-16 model, our detection system has a frame rate of 5fps (including all steps) on a GPU, while achieving state-of-the-art object detection accuracy on PASCAL VOC 2007, 2012, and MS COCO datasets with only 300 proposals per image. In ILSVRC and COCO 2015 competitions, Faster R-CNN and RPN are the foundations of the 1st-place winning entries in several tracks. Code has been made publicly available.

آموزش نصب OpenCV و اجرای آلگاریتم تشخیص چهره با استفاده از وبکم (بخش نهم دوره ی شبکه های عصبی)

در این ویدیو آموزش نصب کتابخانه OpenCV (اپن سی وی) و اجرای آلگاریتم تشخیص چهره به صورت Real-Time از طریق وبکم را به شما معرفی خواهیم کرد.

مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو که 22 دقیقه می باشد به نصب این کتابخانه بسیار بسیار پرکاربرد در مبحث بینایی ماشین و پردازش تصویر پرداخته شده است.

این کتابخانه در زمان نصب روی یک ماشین با پردازنده ۲ هسته ای و ۸ گیگابایت رم ddr2 و یک پردازنده گرافیکی ۲ گیگابایت با برند جی فورس جی تی ۷۱۰ نصب و کانفیگ گردیده است که یک هارد دیسک ۸۰ گیگابایتی هم به عنوان دیسک اصلی برای نصب سیستم عامل لینوکس Ubuntu 14.04.6 LTS (Trusty Tahr) استفاده شده است.

آموزش تشخیص چهره با opencv

 

تشخیص چهره عروسک درون بوفه !

اطلاعات کلی در رابطه با شناسایی کننده OpenCV را می توانید در متن انگلیسی زیر مطالعه فرمایید:

About OpenCV

OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products. Being a BSD-licensed product, OpenCV makes it easy for businesses to utilize and modify the code.

The library has more than 2500 optimized algorithms, which includes a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms. These algorithms can be used to detect and recognize faces, identify objects, classify human actions in videos, track camera movements, track moving objects, extract 3D models of objects, produce 3D point clouds from stereo cameras, stitch images together to produce a high resolution image of an entire scene, find similar images from an image database, remove red eyes from images taken using flash, follow eye movements, recognize scenery and establish markers to overlay it with augmented reality, etc. OpenCV has more than 47 thousand people of user community and estimated number of downloads exceeding 18 million. The library is used extensively in companies, research groups and by governmental bodies.

Along with well-established companies like Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota that employ the library, there are many startups such as Applied Minds, VideoSurf, and Zeitera, that make extensive use of OpenCV. OpenCV’s deployed uses span the range from stitching streetview images together, detecting intrusions in surveillance video in Israel, monitoring mine equipment in China, helping robots navigate and pick up objects at Willow Garage, detection of swimming pool drowning accidents in Europe, running interactive art in Spain and New York, checking runways for debris in Turkey, inspecting labels on products in factories around the world on to rapid face detection in Japan.

It has C++, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS. OpenCV leans mostly towards real-time vision applications and takes advantage of MMX and SSE instructions when available. A full-featured CUDAand OpenCL interfaces are being actively developed right now. There are over 500 algorithms and about 10 times as many functions that compose or support those algorithms. OpenCV is written natively in C++ and has a templated interface that works seamlessly with STL containers.


سایر آموزش های اتفاقی دانشگاه