PyTorch Howsam
#آموزش_پایتورچ جلسه اول: آموزش نصب پایتورچ https://howsam.org/install-pytorch/ @pytorch_howsam
🔴 توجه
🔸 مشکلاتتان در فرآیند نصب را کامنت کنید، در حد توان پاسخ خواهیم داد.
🔸 از صفر شروع میکنیم و انشالله تا مراحل خوبی پیش خواهیم رفت.
🔸 از همین ابتدا جلسات را دنبال کنید...
🔸 مشکلاتتان در فرآیند نصب را کامنت کنید، در حد توان پاسخ خواهیم داد.
🔸 از صفر شروع میکنیم و انشالله تا مراحل خوبی پیش خواهیم رفت.
🔸 از همین ابتدا جلسات را دنبال کنید...
PyTorch Howsam
#پیشرفته #segmentation همه ما یولو را بهعنوان Object Detection میشناسیم. یولو در سمت دیگر الگوریتمهای پروپوزال-محور مثل Faster-RCNN هست. در پستهای قبلی گفتیم که میتونیم با Faster-RCNN هم دتکشن انجام بدیم، هم سگمنت و هم... اتفاقا سعی شده با یولو هم…
#object_detection
در پست ریپلایشده در مورد yolo صحبت شد. شما میتونید در لینک زیر یک مقاله فارسی از الگوریتم yolo رو مطالعه کنید.
https://howsam.org/yolo-algorithm/
نویسنده: مهندس اشرفی
@pytorch_howsam
در پست ریپلایشده در مورد yolo صحبت شد. شما میتونید در لینک زیر یک مقاله فارسی از الگوریتم yolo رو مطالعه کنید.
https://howsam.org/yolo-algorithm/
نویسنده: مهندس اشرفی
@pytorch_howsam
#پیشرفته
تکنیکی ساده برای کاهش مصرف حجم رم GPU
مدلهای حوزه دیپ بزرگ شدن و با 8 گیگ رم GPU ممکنه در بعضی موارد به مشکل بخورید. راهحلهای مختلفی وجود داره که تا حدی مشکل حل بشه.
یکی از راهها، استفاده از float16 بجای float32 در وزنهای شبکه هست. این راه به شکل قابل توجهی حجم رم مصرفی رو کاهش میده و میتونید بچسایزتون رو بزرگتر کنید.
حالا چطور این کار رو در پایتورچ انجام بدیم؟ ما دو راه رو بهتون معرفی میکنیم.
اول، استفاده از کتابخونه apex. طبق تصویر بالا، کافیه همین یک خط رو به کدهاتون اضافه کنید و تمام... کتابخونه apex:
https://nvidia.github.io/apex/amp.html
دوم، استفاده از ()half هست. مدل، دادههای ورودی و تارگت رو به این شکل به float16 تبدیل میکنید و تمام...
model = model.half().cuda()
img_batch = imgs_batch.half().cuda()
lbls_batch = lbls_batch.half().cuda()
آیا سرعت اجرا هم بالا میره؟ فعلا خیر...
آیا افت دقت بهوجود میاد؟ تستهایی که در حوزه Classification انجام دادیم، افت دقتی مشاهده نکردیم.
@pytorch_howsam
تکنیکی ساده برای کاهش مصرف حجم رم GPU
مدلهای حوزه دیپ بزرگ شدن و با 8 گیگ رم GPU ممکنه در بعضی موارد به مشکل بخورید. راهحلهای مختلفی وجود داره که تا حدی مشکل حل بشه.
یکی از راهها، استفاده از float16 بجای float32 در وزنهای شبکه هست. این راه به شکل قابل توجهی حجم رم مصرفی رو کاهش میده و میتونید بچسایزتون رو بزرگتر کنید.
حالا چطور این کار رو در پایتورچ انجام بدیم؟ ما دو راه رو بهتون معرفی میکنیم.
اول، استفاده از کتابخونه apex. طبق تصویر بالا، کافیه همین یک خط رو به کدهاتون اضافه کنید و تمام... کتابخونه apex:
https://nvidia.github.io/apex/amp.html
دوم، استفاده از ()half هست. مدل، دادههای ورودی و تارگت رو به این شکل به float16 تبدیل میکنید و تمام...
model = model.half().cuda()
img_batch = imgs_batch.half().cuda()
lbls_batch = lbls_batch.half().cuda()
آیا سرعت اجرا هم بالا میره؟ فعلا خیر...
آیا افت دقت بهوجود میاد؟ تستهایی که در حوزه Classification انجام دادیم، افت دقتی مشاهده نکردیم.
@pytorch_howsam
#netron
نترون یک ابزار مناسب برای مشاهده معماری و وزن شبکههاست. ابزاری که نسخههای ویندوز، لینوکس، مک و آنلاین داره.
نترون، بسیاری از فریمورکها مانند پایتورچ، تنسورفلو، کفه، اونیکس، میکسنت و غیره رو پشتیبانی میکنه.
در تصویر بالا، یک شبکه آموزشدیده با فریمورک پایتورچ رو در نترون نمایش دادیم. بهراحتی معماری کلی شبکه رو لایهبهلایه میتونید مشاهده کنید. سایز پارامترها و حتی مقدار وزنها رو هم نشون میده. وزنهای هرلایه رو هم میشه بهفرمت npy ذخیره کرد...
ابزارهای دیگری هم برای نمایش شبکهها وجود داره. اما ویژگیهای خوب نترون و همچنین راحتی کار با اون باعث شده ما در کارهامون از نترون استفاده کنیم.
اطلاعات بیشتر:
https://github.com/lutzroeder/netron
@pytorch_howsam
نترون یک ابزار مناسب برای مشاهده معماری و وزن شبکههاست. ابزاری که نسخههای ویندوز، لینوکس، مک و آنلاین داره.
نترون، بسیاری از فریمورکها مانند پایتورچ، تنسورفلو، کفه، اونیکس، میکسنت و غیره رو پشتیبانی میکنه.
در تصویر بالا، یک شبکه آموزشدیده با فریمورک پایتورچ رو در نترون نمایش دادیم. بهراحتی معماری کلی شبکه رو لایهبهلایه میتونید مشاهده کنید. سایز پارامترها و حتی مقدار وزنها رو هم نشون میده. وزنهای هرلایه رو هم میشه بهفرمت npy ذخیره کرد...
ابزارهای دیگری هم برای نمایش شبکهها وجود داره. اما ویژگیهای خوب نترون و همچنین راحتی کار با اون باعث شده ما در کارهامون از نترون استفاده کنیم.
اطلاعات بیشتر:
https://github.com/lutzroeder/netron
@pytorch_howsam
#openai #microscope
دیروز openai مجموعهای بهنام میکروسکوپ رو معرفی کرده که یک ابزار ارزشمند برای visualization هست. میکروسکوپ یک مجموعه از مدلهای معروف در حوزه ویژن رو داره و شما میتونید در دل شبکهها (میان لایهها و نورونها) به اکتشاف بپردازید!
به تصاویر پیوست نگاه کنید. این ابزار آنلاین به شما اجازه میده مثلا شبکه رزنت رو باز کنید و خروجی هر لایه رو به صورت تصویری ببینید.
همواره گفته شده، از ابتدا تا انتهای شبکه، به مرور اشکال پیچیدهتر میشن. حالا میتونید اینها رو اینجا بهصورت تصویری ببینید. ما چند تصویر از لایههای مختلف براتون گذاشتیم.
پیشنهاد میکنیم از طریق لینک زیر حتما نگاهی به لایههای مختلف شبکهها بندازید.
https://microscope.openai.com/models
@pytorch_howsam
دیروز openai مجموعهای بهنام میکروسکوپ رو معرفی کرده که یک ابزار ارزشمند برای visualization هست. میکروسکوپ یک مجموعه از مدلهای معروف در حوزه ویژن رو داره و شما میتونید در دل شبکهها (میان لایهها و نورونها) به اکتشاف بپردازید!
به تصاویر پیوست نگاه کنید. این ابزار آنلاین به شما اجازه میده مثلا شبکه رزنت رو باز کنید و خروجی هر لایه رو به صورت تصویری ببینید.
همواره گفته شده، از ابتدا تا انتهای شبکه، به مرور اشکال پیچیدهتر میشن. حالا میتونید اینها رو اینجا بهصورت تصویری ببینید. ما چند تصویر از لایههای مختلف براتون گذاشتیم.
پیشنهاد میکنیم از طریق لینک زیر حتما نگاهی به لایههای مختلف شبکهها بندازید.
https://microscope.openai.com/models
@pytorch_howsam
#مبتدی
پایتورچ دو کاریرد داره:
اول اینکه، میتونیم شبکههای عصبی بسازیم و آموزش بدیم و...
دوم، میتونیم عملیات جبری که با نامپای انجام میدیم رو با پایتورچ انجام بدیم. در واقع، جایگزین نامپای هم میتونه باشه.
مقالههای سالهای اخیر رو اگه نگاه کنید. میبینید پر شده از عملیات جبری مختلف که رو تنسورهای چهاربعدی داره انجام میشه. پس مهمه که عملیات جبری رو هم خوب بلد باشیم.
در لینک زیر، یکسری از دستورات اولیه جبری پایتورچ مثل تعریف تنسور صفر، واحد، رندوم و غیره رو میبینید. لینک زیر یک فایل کولب هست که میتونه موقع کدنویسی کمکتون کنه.
https://colab.research.google.com/drive/1E80pq5WBSkPevIfLFcea8abxYQS4-0zI
جلسههای ابتدایی دوره آموزش پایتورچ ما هم، به همین عملیات جبری با پایتورچ اختصاص داره. جلسه دوم درحال آمادهسازی هست.
@pytorch_howsam
پایتورچ دو کاریرد داره:
اول اینکه، میتونیم شبکههای عصبی بسازیم و آموزش بدیم و...
دوم، میتونیم عملیات جبری که با نامپای انجام میدیم رو با پایتورچ انجام بدیم. در واقع، جایگزین نامپای هم میتونه باشه.
مقالههای سالهای اخیر رو اگه نگاه کنید. میبینید پر شده از عملیات جبری مختلف که رو تنسورهای چهاربعدی داره انجام میشه. پس مهمه که عملیات جبری رو هم خوب بلد باشیم.
در لینک زیر، یکسری از دستورات اولیه جبری پایتورچ مثل تعریف تنسور صفر، واحد، رندوم و غیره رو میبینید. لینک زیر یک فایل کولب هست که میتونه موقع کدنویسی کمکتون کنه.
https://colab.research.google.com/drive/1E80pq5WBSkPevIfLFcea8abxYQS4-0zI
جلسههای ابتدایی دوره آموزش پایتورچ ما هم، به همین عملیات جبری با پایتورچ اختصاص داره. جلسه دوم درحال آمادهسازی هست.
@pytorch_howsam
#پیشرفته #nlp
اگه دنبال مثالهای متنوع با شبکههای مختلف در حوزه nlp هستید، لینک زیر رو از دست ندید:
https://github.com/graykode/nlp-tutorial
در این لینک، درباره شبکهها و مثالهای مختلف توضیح تئوری داده نشده. اما، همه کدها در گوگل کولب در دسترس هست و بهراحتی میتونید ازشون استفاده کنید.
شما در این پیج گیتهاب، میتونید پروژههایی از RNN، Attention، شبکه کانولوشنی و ترنسفورمرها رو پیدا کنید.
برای افرادی که تا حدی پایتورچ بلد هستند و میخوان در حوزه nlp بیشتر مسلط بشن، این پیج رو از دست ندن.
@pytorch_howsam
اگه دنبال مثالهای متنوع با شبکههای مختلف در حوزه nlp هستید، لینک زیر رو از دست ندید:
https://github.com/graykode/nlp-tutorial
در این لینک، درباره شبکهها و مثالهای مختلف توضیح تئوری داده نشده. اما، همه کدها در گوگل کولب در دسترس هست و بهراحتی میتونید ازشون استفاده کنید.
شما در این پیج گیتهاب، میتونید پروژههایی از RNN، Attention، شبکه کانولوشنی و ترنسفورمرها رو پیدا کنید.
برای افرادی که تا حدی پایتورچ بلد هستند و میخوان در حوزه nlp بیشتر مسلط بشن، این پیج رو از دست ندن.
@pytorch_howsam
PyTorch Howsam
#پیشرفته #nlp اگه دنبال مثالهای متنوع با شبکههای مختلف در حوزه nlp هستید، لینک زیر رو از دست ندید: https://github.com/graykode/nlp-tutorial در این لینک، درباره شبکهها و مثالهای مختلف توضیح تئوری داده نشده. اما، همه کدها در گوگل کولب در دسترس هست و بهراحتی…
#bert #nlp
در پست بالا درمورد nlp و ترنسفورمر صحبت شد. ترنسفورمرها اولین بار در شبکه Bert از گوگل در سال 2018 مطرح شدند.
بعد از دستیابی به موفقیتهای قابل توجه با برت، مدتی پیش گوگل، برت رو در موتور جستجوی خودش بهکار گذاشت. قبل از Bert، الگوریتم RankBrain در موتور جستجوی گوگل بود. حالا متخصصین سئو تلاش میکنن بفهمن با برت چگونه باید محتوا سئو بشه و رمز و رازش چیه!
تصویر بالا مقایسه بین RankBrain و Bert هست...
@pytorch_howsam
در پست بالا درمورد nlp و ترنسفورمر صحبت شد. ترنسفورمرها اولین بار در شبکه Bert از گوگل در سال 2018 مطرح شدند.
بعد از دستیابی به موفقیتهای قابل توجه با برت، مدتی پیش گوگل، برت رو در موتور جستجوی خودش بهکار گذاشت. قبل از Bert، الگوریتم RankBrain در موتور جستجوی گوگل بود. حالا متخصصین سئو تلاش میکنن بفهمن با برت چگونه باید محتوا سئو بشه و رمز و رازش چیه!
تصویر بالا مقایسه بین RankBrain و Bert هست...
@pytorch_howsam
#forum
پایتورچ یک forum بسیار فعال و خوب داره که جواب خیلی از سوالاتتون رو میتونید اونجا پیدا کنید. از سوالهای ابتدایی تا سطح پیشرفته...
فقط کاربرها به سوالات شما پاسخ نمیدن، بلکه افرادی هم از طرف خود پایتورچ میان به شما کمک میکنن.
هفته گذشته یکی از افراد بسیار فعال در forum پایتورچ، توییت کرد که 10 هزارمین پاسخش رو ثبت کرده! یعنی شما هر پستی رو در forum باز میکنید این آقای موبلند رو میبینید!! 😁
تازگی تم forum هم از روشن به تیره تغییر کرده... تصویر بالا 👆
بیایید ما هم فعالیت داشته باشیم و به سوالهای forum پایتورچ پاسخ بدیم. رزومه خوبیه!
لینک forum پایتورچ:
https://discuss.pytorch.org/
@pytorch_howsam
پایتورچ یک forum بسیار فعال و خوب داره که جواب خیلی از سوالاتتون رو میتونید اونجا پیدا کنید. از سوالهای ابتدایی تا سطح پیشرفته...
فقط کاربرها به سوالات شما پاسخ نمیدن، بلکه افرادی هم از طرف خود پایتورچ میان به شما کمک میکنن.
هفته گذشته یکی از افراد بسیار فعال در forum پایتورچ، توییت کرد که 10 هزارمین پاسخش رو ثبت کرده! یعنی شما هر پستی رو در forum باز میکنید این آقای موبلند رو میبینید!! 😁
تازگی تم forum هم از روشن به تیره تغییر کرده... تصویر بالا 👆
بیایید ما هم فعالیت داشته باشیم و به سوالهای forum پایتورچ پاسخ بدیم. رزومه خوبیه!
لینک forum پایتورچ:
https://discuss.pytorch.org/
@pytorch_howsam
گفتگوی کوتاه و جذاب با جفری هینتون (پدرخوانده هوش مصنوعی) با زیرنویس فارسی
جفری هینتون، شوخطبع و البته با اراده قوی
زيرنويس از آکادمی هوش مصنوعی هوسم
@pytorch_howsam
https://www.aparat.com/v/k81TI
جفری هینتون، شوخطبع و البته با اراده قوی
زيرنويس از آکادمی هوش مصنوعی هوسم
@pytorch_howsam
https://www.aparat.com/v/k81TI
آپارات - سرویس اشتراک ویدیو
گفتگوی جذاب و شنیدنی با جفری هینتون ( پدرخوانده هوش مصنوعی ) زیرنویس فارسی
یک گفتگوی جذاب و شنیدنی با جفری هینتون ( پدرخوانده هوش مصنوعی ) در سال 2018 با زیرنویس فارسی
جفری هینتون شخصیتی کاریزماتیک، شوخطبع و البته با اراده قوی...
آکادمی هوش مصنوعی هوسم www.howsam.org
جفری هینتون شخصیتی کاریزماتیک، شوخطبع و البته با اراده قوی...
آکادمی هوش مصنوعی هوسم www.howsam.org
#object_detection #efficientdet #پیشرفته
شبکه تشخیص اشیای EfficientDet، درحال حاضر یکی از بهترین سیستمهای تشخیص اشیا هست. در تصویر 1 میتونید مشاهده کنید که شبکههای خانواده EfficientDet (D0-D7) نسبت به سایر روشها چقدر بهتر هستند.
بلوک دیاگرام کلی EfficientDet رو در تصویر 2 میتونید ببینید. یک شبکه Backbone و بعدش یک لایه بهنام BiFPN چندبار پشت هم تکرار شده. با استفاده از این لایه، ویژگیهای لایههای مختلف شبکه backbone باهم ترکیب شدند. این لایه BiFPN یکی از مهمترین ایدههای مقاله هست.
در واقع لایه BiFPN بهبودیافته همون FPN هست. امروزه در بسیاری از مقالات، از FPN استفاده میشه و خب واقعا تکنیک کارآمدی برای ترکیب ویژگیهاست. در تصویر 3 مورد a، تکنیک FPN نشون داده شده. اما در اینجا، تکنیک BiFPN ارائه شده که در واقع یک مسیر رفت و برگشت داره... تصویر 3 مورد d. لایه BiFPN کمی شبیه به شبکههای بازگشتی دوطرفه شده. موافقید؟!
لینک مقاله EfficientDet:
https://arxiv.org/abs/1911.09070
کد پایتورچ EfficientDet:
https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch/blob/master/readme.md
@pytorch_howsam
شبکه تشخیص اشیای EfficientDet، درحال حاضر یکی از بهترین سیستمهای تشخیص اشیا هست. در تصویر 1 میتونید مشاهده کنید که شبکههای خانواده EfficientDet (D0-D7) نسبت به سایر روشها چقدر بهتر هستند.
بلوک دیاگرام کلی EfficientDet رو در تصویر 2 میتونید ببینید. یک شبکه Backbone و بعدش یک لایه بهنام BiFPN چندبار پشت هم تکرار شده. با استفاده از این لایه، ویژگیهای لایههای مختلف شبکه backbone باهم ترکیب شدند. این لایه BiFPN یکی از مهمترین ایدههای مقاله هست.
در واقع لایه BiFPN بهبودیافته همون FPN هست. امروزه در بسیاری از مقالات، از FPN استفاده میشه و خب واقعا تکنیک کارآمدی برای ترکیب ویژگیهاست. در تصویر 3 مورد a، تکنیک FPN نشون داده شده. اما در اینجا، تکنیک BiFPN ارائه شده که در واقع یک مسیر رفت و برگشت داره... تصویر 3 مورد d. لایه BiFPN کمی شبیه به شبکههای بازگشتی دوطرفه شده. موافقید؟!
لینک مقاله EfficientDet:
https://arxiv.org/abs/1911.09070
کد پایتورچ EfficientDet:
https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch/blob/master/readme.md
@pytorch_howsam
#multi_object_tracking #پیشرفته
ردیابی چندهدفه یا MOT، یکی از چالشیترین زمینههای بینایی کامپیوتر هست. هدف، ردیابی افراد و اشیا در ویدئوهاست. کار مشکلی که نه تنها روشهای امروزی دقت بالایی ندارن، بلکه اغلب سرعت بسیار پایینی هم دارن. مثلا تصور کنید، سرعت اجرای الگوریتم زیر 7 فریم بر ثانیه باشه...
روشهای پیشنهادی در MOT غالبا شامل دو بخش تشخیص اشیا و استخراج ویژگی از اشیا هستن. حالا تصور کنید برای این دو بخش، دو شبکه بزرگ مانند رزنت 50 درنظر بگیریم و تازه دقت بالایی هم نداشته باشیم! با دو شبکه رزنت 50، سرعت هم که...
مقالهای که انتخاب کردیم در سال 2020 منتشر شده و جز دسته مقالاتی هست که تلاش کرده تنها با یک شبکه دو عمل تشخیص اشیا و استخراج ویژگی از اشیا رو انجام بده. اتفاقا هم سرعت خوبی بهدست اومده و هم دقت نسبتا قابل قبولی حاصل شده. با روش پیشنهادی تونستن به سرعت 30 فریم بر ثانیه برسن که خوبه...
علاوه بر تصویر بلوک دیاگرام، یک نمونه خروجی از الگوریتم هم گذاشتیم. هر رنگ مختص به یک هدف هست...
مقاله FairMOT:
https://arxiv.org/abs/2004.01888
کدهای پایتورچ:
https://github.com/ifzhang/FairMOT/
@pytorch
ردیابی چندهدفه یا MOT، یکی از چالشیترین زمینههای بینایی کامپیوتر هست. هدف، ردیابی افراد و اشیا در ویدئوهاست. کار مشکلی که نه تنها روشهای امروزی دقت بالایی ندارن، بلکه اغلب سرعت بسیار پایینی هم دارن. مثلا تصور کنید، سرعت اجرای الگوریتم زیر 7 فریم بر ثانیه باشه...
روشهای پیشنهادی در MOT غالبا شامل دو بخش تشخیص اشیا و استخراج ویژگی از اشیا هستن. حالا تصور کنید برای این دو بخش، دو شبکه بزرگ مانند رزنت 50 درنظر بگیریم و تازه دقت بالایی هم نداشته باشیم! با دو شبکه رزنت 50، سرعت هم که...
مقالهای که انتخاب کردیم در سال 2020 منتشر شده و جز دسته مقالاتی هست که تلاش کرده تنها با یک شبکه دو عمل تشخیص اشیا و استخراج ویژگی از اشیا رو انجام بده. اتفاقا هم سرعت خوبی بهدست اومده و هم دقت نسبتا قابل قبولی حاصل شده. با روش پیشنهادی تونستن به سرعت 30 فریم بر ثانیه برسن که خوبه...
علاوه بر تصویر بلوک دیاگرام، یک نمونه خروجی از الگوریتم هم گذاشتیم. هر رنگ مختص به یک هدف هست...
مقاله FairMOT:
https://arxiv.org/abs/2004.01888
کدهای پایتورچ:
https://github.com/ifzhang/FairMOT/
@pytorch