دستاوردهای یادگیری عمیق(InTec) – Telegram
دستاوردهای یادگیری عمیق(InTec)
9.45K subscribers
363 photos
40 videos
44 files
674 links
هوش مصنوعی، یادگیری ماشین و یادگیری عمیق
موضوع اصلی کانال

این یک بلاگ شخصی با طرز تفکر شخصی هست.

Core Python : @PyHints

تلاشی هم در یادگیری Rust دارم که درحال داکیومنت شدن هم هست؛ اگر شماهم به این زبان علاقمند هستید join یادتون نره

Rust: @PyRust
Download Telegram
توجه :

حواستون به ورژن 5.18 کرنل لینوکس باشه، استثنا اگر روی سیستم اطلاعات مهم دارید این نسخه رو خیلی سریع آپدیت نگیرید.

توی این نسخه از کرنل بجای قرار C89 به C11 آپگرید بشه (بعد از ۳۰ سال)
دلایلش رو خود لینوس توضیح داده که می‌تونید بخونید (loop of vulnerability ایی شده واسه خودش 😅)

برای اطلاعات بیشتر :

Kernel C-upgrade explained
👍3
این کورس هم خوبه برای دوستانی که می‌خوان ML رو شروع کنند :
۹ ساعت ویدئو آموزشی
Youtube Link
👍3🔥3
Media is too big
VIEW IN TELEGRAM
توقع - واقعیت
وقتی مدل هوش مصنوعی رو تست نشده
میبری روی پروداکشن

#silicon_valley
😁6👍1
TorchStudio

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


شخصاً هنوز تست نکردم
(برتری شما، نحوه حل مسئله و نوع تفکر هست قطعاً)
👍6🔥6
بعنوان یک SysAdmin - LinuxUser هیچ چیزی مهمتر از راحت بودن توی ترمینال نیست
از انتخاب رنگ‌ها و فونت‌ راحت بگیرید (چشم نباید اذیت بشه) تا کانفیگ ابزارهایی برای راحتی
مثل tmux :

امروز اتفاقی موقع کار کردن یکی از بچه‌ها داشتم بهش نگاه میکردم: چون دستهاش نسبت به کیبوردش کوچیک هست
نمی‌تونه از tmux بخوبی و راحت استفاده کنه (فاصله بین کیلدها و ...)
قطعا خنده دار بود این وضعیت ولی بعدش تصمیم گرفتم کانفیگ tmux خودم رو براش بفرستم؛
ازونجایی که براش مفید بود و دعای خیر بهمراه داشت؛ گفتم با شما دوستان هم به اشتراک بذارم قطعا بکار میاد.

نکته‌ی مهم :
بعد این کانفیگ بجای Ctrl+B از Ctrl+A استفاده کنید.
نکته دوم اینکه توی محیط گرافیکی می‌تونید از mouse هم استفاده کنید.
کلیدهای جهت کیبورد + Ctrl+A هم برای جابجا شدن بین بخش‌های مختلف ترمینال استفاده میشه.
👍8👏2👎1🎉1
این کتاب رایگان از دانشگاه برکلی شامل همه چیزی هست که قبل از شروع برنامه نویسی ML بهش نیاز دارید (Python - Math)

۱۰۰٪ مفید هست 😉😉😉

Python Programming And Numerical Methods: A Guide For Engineers And Scientists
🔥16
چقدر خوب توضیح داده،
اجرای پایتورچ روی
RaspberryPi

و تفاوت سرعت مدل، وقتی Quantize, Jit استفاده می‌شه

اولین بار (۴ سال شایدم ۵ سال پیش) که می‌خواستیم اینکار رو برای یک پروژه‌ای انجام بدیم واقعاً پیر شدیم

اونوقتا هیچکدوم از فریمورک‌های مطرح
Raspberry Pi
رو پشتیبانی نمی‌کرد، ی کامیونیتی گوگل - گیت‌هاب راه افتاده بود که
Tensorflow
رو از source build میکرد برای همین مدل دیوایس‌ها (همیشه ۲ تا ورژن عقب بود و ما برای مدل اول این رو نمی‌دونستیم، تنها راهکار retrain بود)

چقدر همه چیز راحت شده (شکر)


RealTime Inference on RaspberryPi with Pytorch
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
جوری که شرکت‌های ایرانی نیروی تخصصی می‌خوان

#مهمونی
😁35👍1👏1
بعد از تعطیلاتی که گذشت؛ با مدیریت صحبت کردم که به زودی از کار استعفا میدم علاوه بر مخالفت
امروز این کتاب رو برام ارسال کرد
و ازم خواست قبل از قطع همکاری بخونم این کتاب رو

شروع کتاب ؛ خیلی برام جالب بود (چیزهایی که روتین شده واقعا)


منبع :

How to build an amazing IT team
👍15😢7👎1
دستاوردهای یادگیری عمیق(InTec)
cuML is GPU-accelerated machine learning library similar to scikit-learn but made to run on GPU Github link
قبلتر درمورد Rapids بسیار صحبت شد و ابزارهایی که سراغش رفتند و بر پایه‌ی این مورد توسعه داده شدند رو هم ذکر کردم

حالا که Spark نسخه جدید هم داره ازین ابزار استفاده می‌کنه (spark gpu processing) بهتره دوباره یک سری بهش بزنیم

توی تیم من هم همه‌ی بچه‌های Data scientist , ML research با این ابزار آشنایی دارند

ولی وقتی دیتا زیاد هست و سرعت محاسبات برامون مهمه و حافظه Gpu کم هست چالش جدی داریم که خب


Cuda Unified Memory

مشکل مارو حل می‌کنه (آخرین باری که چک کردم با بچه‌های تیم Data engineering این مورد هنوز روی spark نبود)

خیلی بدرد بخور هست این روش پیشنهاد میدم حتماً چک کنید (مثال روی cuGraph هست)

Medium Blog Post
🔥4👍1👎1
شاید برای خیلی‌ها دستمزد دلاری - اسم شرکت و ... خیلی مهمتر از هرچیزی باشه

برای من شعور و رفتار حرفه‌ای از هرچیزی بیشتر اهمیت داره (مخصوصاً وقتی موضوع بحث مدیریت تیم باشه)

توصیه می‌کنم به همه‌ی نیروهای تازه کار این مورد رو بیشتر از دستمزد دنبالش باشید (قطعاً رستگار می‌شید)

با این همه اگر کسی نیاز شدید داره (اسم شرکت توی عکس موجود هست پیام بدید به یکی از نیروهاش)
👍26👎1
تفاوت کد junior - senior برای استخدام (مصاحبه ۱ ساعت پیش) :
نتایج واضح هست که چه کسی بعنوان senior استخدام می‌شه دیگه (مصاحبه مختصر و مفید)

نکته مهمی که خواسم اشاره کنم اینه که توی مسابقات و مصاحبه استخدام حتما سعی کنید از Generator ها استفاده کنید

تفاوت سرعت اجرا :

running fib function took 7.486343383789062e-05ms
——————————————————
running fib2 function took 7.152557373046875e-07ms
👍20👎2🔥2
اینم یک منبع خوب برای تمرین همچین سوالاتی :
LeetCode
خوبی این سایت نسبت به مدل‌های دیگه اینه که با خرید اکانت premium حتی می‌تونید ببینید شرکت‌های مختلف مثل آمازون - گوگل و ... چه سوالاتی رو بیشتر پرسیدند توی مصاحبه و اینکه برای این مصاحبه‌ها بهتر آماده بشید
البته نسخه رایگان هم بسیار عالی هست برای تمرین

برای مقایسه :
اکثر جلسات مصاحبه (البته بحث‌ این ۲ تا پست راجب software engineering هست و برای ML / DL / Data Science همچین سوالاتی مطرح نمی‌شه) بین ۱ تا ۱.۵ ساعت وقت داره که با توجه به توضیحات مسئله - صحبت کلی - پرسیدن نحوه حل مسئله از شما باید بتونید سوالات سخت سایت رو زیر زمان 45 دقیقه حل کنید.

پس فقط حل مسئله نیست که اهمیت داره :
۱- نحوه حل مسئله ۲ - فکر کردن به موارد استثنا (مخصوصا صحبت راجبش قبل از شروع کد زدن) ۳- زمان حل مسئله بسیار مهم هستند.
👍122👏1
ی وقتایی هم هست که فراموش کردن نکات ساده چندساعت درگیری ایجاد می‌کنه و کد رو کثیف می‌کنه


مثل اینکه :
توی پایتون برای for هم else وجود داره؛ اگر break داخل for اجرا شد میره سراغ else (جزو اولین نکته‌هایی که روی loop توی پایتون آموزش می‌بینیم، while هم این رو داره)

و من ۲ ساعت وقت گذشتم یک کد جدید نوشتم که همین حالات رو برای من detect کنه 🤦🤦
😁11👍31
دستاوردهای یادگیری عمیق(InTec)
ی وقتایی هم هست که فراموش کردن نکات ساده چندساعت درگیری ایجاد می‌کنه و کد رو کثیف می‌کنه مثل اینکه : توی پایتون برای for هم else وجود داره؛ اگر break داخل for اجرا شد میره سراغ else (جزو اولین نکته‌هایی که روی loop توی پایتون آموزش می‌بینیم، while هم این…
این توضیح ی ایراد بزرگ داشت، فقط ۱ نفر درستش رو گفت :

حلقه فقط وقتی break نشه، else رو اجرا می‌کنه (توضیح اول من برعکس بود، ادیت نکردم و می‌خوام به اشتباه بمونه)

چیزی حه میخواستم این بود که اگر break نشد نتیجه رو نگهدار وگرنه محاسبات اشتباه بوده و نتیجه رو ذخیره نکن.

منطقش هم اینه که :
Else
وقتی اجرا میشه که شرط اشتباه بشه چه توی while و چه for وقتی break می‌خوره، ینی آخرین باری که شرط رو چک کردیم درست بوده و دیگه از بررسی else خارج شده (اگر شرط غلط بود else اجرا می‌شد)

مرسی از Ali Satvaty که اشاره دقیقی به این موضوع داشت
و Mohammad Reza که پیش تر ی اصلاح ریزی زد رو اشتباه من
👍7👎4🤔2
#تجربه

دونستن Data Structure خیلی مهم هست؛ اما من همیشه به کسایی که بعد از یادگیری مقدمات پایتون دنبال یادگیری Data Structure, Algorithm هستند میگم که سعی کنید آموزشی رو دنبال کنید که این موضوع رو توی همون زبان برنامه نویسی که کار می‌کنید (پایتون) آموزش بده

مهمترین بخش از شغل من code review / code optimization هست توی این مدت اخیر (مخصوصا وقتی به deploy بسیار نزدیک هستیم)؛ تمامی بچه‌های software engineering به خوبی هرچه تمام راجبع ساختمان داده و الگوریتم اطلاع دارند.
اما مشکلی که وجود داره (دانشگاهی و آموزشگاهی) این هست که کسی به اینها نگفته آقا/خانم اگر قرار هست با پایتون کد بزنی یکبار دیگه این ساختمان داده که خوندی رو توی پایتون چک کن ؛ چیزی که نتونی ازش استفاده کنی چه بدرد می‌خوره

۵۰-۶۰ درصد کار optimization که دارم انجام میدم شده همین موضوع (تغییر Data Structure داخل کدهای استفاده شده) و حدودا ۸۰ درصد git commit هایی که میزنم با این پیام هست :
using array instead of list for .... - ram usage before : 10GB - after: 800MB
اولا اینکه تفاوت استفاده از رم که میخونید واقعی هست؛ و قبل از نوشتن این متن آخرین کامیتی که زدم دقیقا همین بود.

نکته‌ای که همه بلد هستند ولی توی پایتون دقت نمی‌کنند اینه :
1- list != array
2- Dynamic Array != Static Array
مخصوصا از لحاظ تعریف data structure :
لیست توی پایتون از لحاظ حافظه و مدل پیاده سازی رفتاری شبیه به Dynamic Array داره (میگم شبیه بخاطر اینکه لیست پایتون می‌تونه Data Type های متفاوتی داشته باشه)

جایگزین لیست که می‌تونید استفاده کنید مخصوصا برای بهبود حافظه (IoT - Edge Computing) استفاده از ماژول‌های array یا numpy هست توی پایتون
بازم تاکید می‌کنم اگر Data Structure , Algorithm می‌خونید:
حتما حتما یکبار هم برای زبان برنامه‌نویسی که روش کار می‌کنید بخونید.
👏20👍51
تصویر مقایسه میزان مصرف حافظه
Array - List - Numpy
برای یک لیست عددی شامل 100میلیون داده.

تفاوت لیست با numpy array از :
3.8GB —> 125 MB
هست.
🤯25👍7
#Roadmap 2022

این رو برای یک دوستی که تازه داره سعی می‌کنه وارد، ماشین‌لرنینگ بشه نوشتم ؛
اول اینکه توجه کنید,
۱- ایشون تازه برای کارشناسی بورسیه گرفته و قراره شروع کنه درسش رو
۲- پایتون رو در سطح متوسطی بلد هست و چندسالی هست که کد میزنه (Data structure, Algorithm رو متوجه‌ هست)
۳- علاقه شدیدی به هوش مصنوعی داره و برخلاف خیلی‌ها که می‌خوان سریعتر کد بزنن ترجیح میده وقت بیشتری توی مقدمات بذاره تا حرفه‌ای تر جلو بره


RoadMap :

1- Numpy (and scipy):

. Numpy Beginners guide 3rd edition (packt)
. Python Numpy Beginners (AI publishing)
. Scientific Computing with Python .... 2nd edition (Claus Fuhrer - packt pub)
* High performance python ... 2nd edition (O'Reilly)

2- Pandas:

Effective Pandas (Matt Harrison)
Pandas in Action (Manning Pub)
Pandas 1.x cookbook ... 2nd edition (Packt pub)

3- Matplotlib (or other visualization libs)

Hands on matplotlib (Ashwin - Apress pub)
Data visualization with python for beginners ... ( AI publishing)

چیزی که خیلی مهمه اینه کار با OOP، api رو توی این کتابخونه یاد بگیرید.

3- Data Engineering
نه کامل اما بعضی مباحث واقعاً لازم هست :
Sql / NoSql / PySpark
اینها مباحثی هست که خیلی بدرد میخوره معمولاً

4- Scikit-learn :

Hands on machine learning with scikit-learn, ... (O'Reilly) - Part 1 only

Machine learning with pytorch and scikit-learn (Packt pub) - Part 1 only

5- Story telling
کتاب‌های زیادی برای این مورد وجود داره که بسته به علاقه و نوع نوشتاری که می‌پسندید می‌تونید انتخاب کنید

اما این بخش رو اصلا دستکم نگیرید (۹۹.۹٪ آموزش‌ها این موضوع رو منتقل نمی‌کنند و ۱۰۰٪ توی کار این موضوع واجب و حیاتی هست)

6-
آمار و احتمالات / ریاضیات / جبر

بستگی به خودتون داره؛ اگر فکر می‌کنید لازم هست کمی ریاضیات پایه رو مرور کنید
آمار و احتمال رو شاید بهتره حتی قبل از scikit-learn مرور کنید

کتابهای با عنوان statistical learning وجود داره برای پایتون که به سلیقه خودتون می‌تونید بخونید.
7- Deep learning (practical)

۲ تا کتابی که برای Machine learning معرفی کردم بخش دوم هر ۲ کتاب رو می‌تونید اینجا شروع کنید
Deep learning with python 2nd edition (Manning pub)
هم حتماً برای اونایی که Tensorflow هم می‌خوان کار کنند باید خونده بشه

اگر قرار هست کارهای deploy , ... هم انجام بدید اون خودش ی roadmap اساسی میخواد اما بطور ساده :

ML engineering / MLOps / Linux / Docker / Api development (FastApi) / Edge deployment (Tiny ML)

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

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

کتاب :
High performance python
جزو واجبات هست که بنظرم همه باید بخونند.
👍48👏189👎4