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

ارتباط با ادمین
@howsam_support
Download Telegram
PyTorch Howsam
#مقایسه #تنسورفلو #پایتورچ 🔸 جداول و نمودار تصویر بالا مقایسه‌ای بین پایتورچ و تنسورفلو تا اکتبر 2019 رو نشون میده. نمودار: این نمودار تعداد مقالاتی که در کنفرانس‌های برتر حوزه هوش مصنوعی از پایتورچ و تنسورفلو استفاده کردند رو نشون میده. خط‌چین‌ها نشون دهنده…
#مقایسه #تنسورفلو #پایتورچ

🔸 جداول و نمودار تصویر بالا مقایسه‌ای بین پایتورچ و تنسورفلو تا اکتبر 2019 رو نشون میده.

در آنالیز بالا، مقالاتی که به هردو اسم پایتورچ و تنسورفلو اشاره کردن، کنار گذاشته شدن. همچنین، مقالاتی که توسط گوگل و فیسبوک منتشر شدند هم کنار گذاشته شدن.

در کل نمودار بالا نشون میده که محقق‌ها احساس راحتی بیشتری با پایتورچ دارن و بی دغدغه میتونن روی ایده‌هاشون کار کنن.

منبع این پست، سایت thegradient.pub هست. لینک این مقایسه رو برای شما در زیر گذاشتیم:
https://bit.ly/2wUfzUE

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

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

@pytorch_howsam
#معرفی_سایت

راستی سایت thegradient.pub پست‌های خوبی میذاره. پیشنهاد میکنیم دنبال کنید. دنبال کردن چنین سایت‌هایی باعث میشه از اتفاقات روز هوش مصنوعی باخبر بشیم و بروز بمونیم.

این سایت توسط دانشجوها و محقق‌های آزمایشگاه هوش مصنوعی استنفورد راه‌اندازی شده.

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

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

اولین جلسه، انشالله جمعه (22 فروردین) منتشر خواهد شد.

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

آموزش‌ها رایگان هست. همچنین از صفر به آموزش می‌پردازیم.

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

البته، طبق معمول از پیشنهادهای شما هم استقبال می‌کنیم.

در کنار آموزش از صفر پایتورچ، برای دوستان حرفه‌ای هم مطالب مفید در سایت منتشر خواهیم کرد. انشالله اولین پست راه‌اندازی و آموزش شبکه Faster-RCNN خواهد بود.

@pytorch_howsam
This media is not supported in your browser
VIEW IN TELEGRAM
#چالش

فیسبوک در کنفرانس CVPR 2020 قراره چالشی رو با عنوان Low Power Computer Vision Challenge برگزار کنه.

هدف این هست که در ویدئوهایی مثل ویدئوی بالا، کاراکترهای موجود در ویدئوها detect و recognize بشن.

بخش جالبش اینه که این کار باید با PyTorch mobile و Raspberry Pi 3Bplus انجام بشه.

سایت مرجع این چالش:
lpcv.ai

این هم لینک مربوط به پایتورچ موبایل:
pytorch.org/mobile/home/

@pytorch_howsam
#پیشرفته

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

مراحل کار در تصویر پیوست اومده:
اول، شبکه مدنظرتون رو در کامپیوتر راحت ترین میکنید و مدلش رو ذخیره میکنید.
دوم، اگه میخوایید کوانتیزه کنید با پایتورچ می‌تونید اینکارو انجام بدید. ولی این مرحله دلخواهه. در پست بعدی میگم کوانتیزه برای چی هست و به چه دردی میخوره.
سوم، با torchscript مدل آموزش دیده رو برای موبایل آماده می‌کنید.
چهارم، استفاده از مدل در پروژه‌های موبایلی‌تون...

موبایل‌ها دارای پردازنده‌های با معماری متفاوت نسبت به cpu و gpu هستند. برای همین باید اول مدل رو برای کار در موبایل تبدیل کنیم و بعد ازش استفاده کنیم.

@pytorch_howsam
This media is not supported in your browser
VIEW IN TELEGRAM
#پیشرفته

کتابخانه Detectron2

کتابخونه Detectron2 یک کتابخونه ماژولار مخصوص Object Detection براساس پایتورچ هست. در ویدئوی بالا، بخشی از قابلیتهای این کتابخانه نشون داده شده.

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

کتابخونه Detectron اولین بار در سال 2018 توسط فیسبوک مبتنی بر Caffe2 منتشر شد. استفاده از این کتابخونه کمی مشکل بود. اما Detectron2 از نو براساس پایتورچ بازنویسی شد و استفاده از اون مثل پایتورچ راحت شده.

درباره ویژگی‌های این کتابخونه مطالب زیادی میشه نوشت. انشالله من چند پست سریالی در روزهای آینده برای Detecron2 آماده میکنم.

https://github.com/facebookresearch/detectron2

@pytorch_howsam
#colab #مبتدی

طبق مشاهداتمون تا امروز، چهار نوع GPU در کولب رایگان وجود داره:
مدل K80: با 12 گیگ رم و 4.11 ترافلاپس
مدل P4: با 8 گیگ رم و 5.5 ترافلاپس
مدل T4: با 16 گیگ رم و 8.1 ترافلاپس
مدل P100: با 16 گیگ رم و 9.4 ترافلاپس

دو مدل P100 و T4 بهتر هستن. بنابه میزان استفاده تنزل GPU پیدا میکنید. GPU اختصاص داده شده رو با دو خط زیر همون اول کار می‌تونید چک کنید:
import torch
torch.cuda.get_device_properties(0)

البته راه‌های دیگه‌ای هم برای چک کردن هست که ما پایتورچیش رو گفتیم.

دستور بالا مدل GPU رو به شما نشون میده. اگر یکی از دو مدل P100 و T4 بود که به کار ادامه بدید... اگر از دو نوع مدل K80 و P4 بود، از Runtime گزینه Factory reset رو انتخاب کنید و دوباره وصل شید.

مثلا امروز به من سه بار P4 داد ولی بار چهارم P100 شد...

@pytorch_howsam
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