PyTorch Howsam
3.01K subscribers
341 photos
48 videos
5 files
476 links
از هوش مصنوعی میگیم...

ارتباط با ادمین
@howsam_support
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
#detectron2 #پیشرفته

خب در قسمت دوم معرفی detecron2، یک ویدئوی جدید هم گذاشتیم. این ویدئو خیلی خلاصه یکی از قابلیتهای مهم detecron2 رو نشون میده. در این ویدئو تمرکز روی RCNN هست.

مشاهده میکنید که ابتدا یک شبکه پایه (backbone) انتخاب میکنید. این شبکه علاوه بر فیچرمپ، یکسری پروپوزال باکس هم میده (در ویدئو مشخصه). حالا روی شبکه پایه شما میتونید انواع و اقسام head module با کاربردهای مختلف بگذارید. مثلا head module های object detection و segementation و pose بگذارید. همه خروجیها رو هم همزمان خواهید داشت.

در detectron2 به راحتی میتونید اینکارها رو با چند خط کد انجام بدید. راحت یک شبکه رو به عنوان شبکه پایه انتخاب کنید. بعد هر ماژولی که خواستید رو از detectron2 انتخاب کنید و به انتهای شبکه پایه اضافه کنید.

@pytorch_howsam
#مبتدی #nlp

یک پست وبلاگی خوب در حوزه متن

در این پست به کلاس‌بندی نظرات در یک خرید پرداخته میشه. در این پروژه از دیتاست زیر استفاده شده:
Women's E-commerce Clothing Reviews

در پروژه از LSTM استفاده شده و مرحله به مرحله هم کدها رو توضیح داده. از فریمورک پایتورچ هم استفاده شده.

لینک پست وبلاگی:
https://towardsdatascience.com/multiclass-text-classification-using-lstm-in-pytorch-eac56baed8df

یک توضیحی هم درباره دیتاست بدم. این دیتاست در کاگل منتشر شده و شامل نظرات 30 هزار خانم درباره لباس هست. هم کامنت و هم امتیازی که دادن... دیتاست بسیار خوبیه.

@pytorch_howsam
#پیشرفته #segmentation

همه ما یولو را به‌عنوان Object Detection می‌شناسیم. یولو در سمت دیگر الگوریتم‌های پروپوزال-محور مثل Faster-RCNN هست. در پست‌های قبلی گفتیم که می‌تونیم با Faster-RCNN هم دتکشن انجام بدیم، هم سگمنت و هم...

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

مقاله خوب زیر، شبکه‌ای رو با عنوان yolact پیشنهاد داده که کار دتکشن و سگمنت رو باهم انجام میده. ما ساختار شبکه رو در تصویر بالا برای شما قرار دادیم. بخش protonet به کمک نتایج دتکشن (یعنی خروجی NMS و prediction head در تصویر) عمل سگمنت رو انجام میده. خود شبکه هم که رزنت-101 با ساختار FPN هست.

راستی می‌دونید FPN چی هست؟ اگه لازم میدونید یک پست کوتاه براش بذاریم.

مقاله:
https://arxiv.org/pdf/1904.02689.pdf

کدهای پایتورچ:
https://github.com/dbolya/yolact

@pytorch_howsam
#مبتدی #آموزش_پایتورچ

دوستان عزیز،

اولین جلسه آموزش پایتورچ با موضوع نصب پایتورچ آماده شده و انشالله فردا منتشر می‌کنیم. در این کانال اطلاع‌رسانی خواهیم کرد...

اگر علاقه‌مند به یادگیری پایتورچ هستید، برنامه‌ریزی کنید تا هفتگی آموزش‌های پایتورچ هوسم رو بخونید. پاسخ به سوالات و اشکالات رو هم در حد توان خواهیم داشت...

@pytorch_howsam
PyTorch Howsam pinned «#مبتدی #آموزش_پایتورچ دوستان عزیز، اولین جلسه آموزش پایتورچ با موضوع نصب پایتورچ آماده شده و انشالله فردا منتشر می‌کنیم. در این کانال اطلاع‌رسانی خواهیم کرد... اگر علاقه‌مند به یادگیری پایتورچ هستید، برنامه‌ریزی کنید تا هفتگی آموزش‌های پایتورچ هوسم رو بخونید.…»
#مبتدی #skorch

در سایت پایتورچ، بخشی وجود داره به‌نام اکوسیستم (لینک زیر):
https://pytorch.org/ecosystem/

در لینک بالا، شما یک مجموعه کتابخونه و پروژه خوب مبتنی بر پایتورچ میبینید. اما نه پروژه‌هایی که شامل پیاده‌سازی صرفا یک مقاله باشه، بلکه پروژه‌ها و کتابخونه‌هایی که بتونه به سایر محققین در سراسر دنیا کمک کنه که کارهاشون رو جلو ببرن.

ما میخواییم یکسری از اکوسیستم‌های معروف و کاربردی رو بهتون معرفی کنیم.

اولین مورد، skorch هست. skorch ترکیب دو کتابخونه scikit-learn و pytorch هست. سایکیت یک کتابخونه عالی در زمینه یادگیری ماشین مبتنی بر پایتون هست. پایتورچ هم که می‌شناسید...

اما اسکورچ چه ویژگی‌ای داره؟ تصویر بالا رو ببینید. شما با پایتورچ می‌تونید شبکه بسازید. سایکیت هم یک عالمه تابع خوب مثل grid-search (تیون هایپرپارامترها) داره... حالا اسکورچ به شما این امکان رو میده که شبکه رو با پایتورچ بسازید و نحوه آموزش و سایر کارهاش رو بر عهده سایکیت بذارید.

کتابخونه skorch:
https://github.com/skorch-dev/skorch

بازهم اکوسیستم پایتورچی به شما معرفی خواهیم کرد...

@pytorch_howsam
#فان

مردم توی ایام قرنطینه دونه‌های میوه رو جدا میکنن و کنار هم میچینن!

فکر کنم بروبچه‌های دیپ باید یک شبکه بزرگ مثلا Bert رو بردارن، تک‌تک وزن‌هاشو کنار هم بچینن 😁

@pytorch_howsam
PyTorch Howsam
#آموزش_پایتورچ جلسه اول: آموزش نصب پایتورچ https://howsam.org/install-pytorch/ @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
#openai #microscope

دیروز openai مجموعه‌ای به‌نام میکروسکوپ رو معرفی کرده که یک ابزار ارزشمند برای visualization هست. میکروسکوپ یک مجموعه از مدل‌های معروف در حوزه ویژن رو داره و شما می‌تونید در دل شبکه‌ها (میان لایه‌ها و نورون‌ها) به اکتشاف بپردازید!

به تصاویر پیوست نگاه کنید. این ابزار آنلاین به شما اجازه میده مثلا شبکه رزنت رو باز کنید و خروجی هر لایه رو به صورت تصویری ببینید.

همواره گفته شده، از ابتدا تا انتهای شبکه، به مرور اشکال پیچیده‌تر میشن. حالا می‌تونید اینها رو اینجا به‌صورت تصویری ببینید. ما چند تصویر از لایه‌های مختلف براتون گذاشتیم.

پیشنهاد می‌کنیم از طریق لینک زیر حتما نگاهی به لایه‌های مختلف شبکه‌ها بندازید.
https://microscope.openai.com/models

@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