TECH STASH – Telegram
TECH STASH
212 subscribers
115 photos
5 videos
15 files
254 links
اینجا هر چی رو که یاد میگیرم، به اشتراک میزارم...
هوش مصنوعی، لینوکس، اوپن سورس، برنامه نویسی و...

Admin: @D3F4U1T_ARS
Download Telegram
Transposed Convolution

یا کانولوشن های معکوس تو DCGAN ها و هر GAN که از Convolution استفاده میکنه رایج هست.

در واقع برعکس Convolution هست.
تو Convolution تصویر اصلی کوچک و به فرم یا نماینده فشرده ای تبدیل شده و ويژگی های دیتاست رو یاد گرفته میشه.

تو Transposed Convolution یه نویز یا عدد رندوم رو با استفاده از ويژگی هایی که یاد گرفته شده به یک تصویر تبدیل میکنن.

ولی خب درک پروسه Transposed Convolution پیچیده هست.
این مقاله بهتون میگه که چرا بهش Transposed Convolution میگن.

Understand Transposed Convolutions

ولی خب کوتاه بخوام بگم.
عملیات Convolution به صورت ضرب ماتریس در میاد و به همین دلیل سریع انجام میشه.
و با transpose کردن (تغییر دادن طول و عرض) همون عملیات رو برعکس انجام میشه داد.

ولی خب فقط این دو نیستن.
ما dilation هم داریم.
که یه دسته دیگه از Convolution هارو تشکیل میدن.

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

مقاله بعدی که میفرستم راجب انواع Convolution ها صحبت میکنه.

An Introduction to different Types of Convolutions in Deep Learning

این مخزن هم یکسری انیمیشن هایی راجب Convolution و مثال های مختلف میده.

https://github.com/vdumoulin/conv_arithmetic

نمیدونم چرا archive شده ولی داکیومنت PyTorch اینجا رو ریفرنس کرده بود.
تو پست های پایین هم یکسری GIF هایی همراه با پارامتر ها از عملیات Convolution رو براتون میفرستم.
This media is not supported in your browser
VIEW IN TELEGRAM
2D Convolution

Input: Down
Output: Up

kernel size: 3x3
dilation: 1
stride: 1
padding: 1
This media is not supported in your browser
VIEW IN TELEGRAM
2D dilated convolution

Input: Down
Output: Up

kernel size: 3
dilation: 2
stride: 1
padding: 0
This media is not supported in your browser
VIEW IN TELEGRAM
2D Transposed convolution

Input: Up
Output: Down


kernel size: 3
dilation: 1
stride: 2
padding: 0
انگار که GIF روی telegram-web و telegram-desktop اوکیه ولی روی Telegram X به صورت فایل نمایش میداد.

خلاصه GIF های بالا رو به فرمت ویدیویی با ffmpeg انکود کردم و اوکی شد.
Python Concurrency with asyncio

سرفصل هاشو چک کردم و میتونم بگم کتاب خیلی خوبی برای asyncio هست (جدا از خود داکیومنت پایتون که دیگه معلومه و همتون میدونید).
🔥1
Build a Large Language Model (From Scratch)

از نویسنده و محقق معروف Sebastian Raschka.
این کتاب راجب صفر تا صد LLM ها صحبت میکنه. من نخوندمش ولی رفتم و سر فصل هاشو بررسی کردم و منبع کاملی هست برای این موضوع. از Trasnformer ها شروع میکنه و تا ساخت مدل GPT و train کردنش و بهینه سازی هاش و کلی چیزایه دیگه.

قطعا مرجع مهمی برای LLM ها.
👍1
Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow | Concepts, Tools, and Techniques to Build Intelligent Systems | 3rd Edition

اگر با Tensorflow میخواید کار کنید. این مرجع و کتاب خیلی مهمی هست.
دو بخش داره.

بخش اولش کلا با الگوریتم های کلاسیک ML مثل Random Forest, SVM, Decision Trees k-means و ...

بخش دومش هم راجب شبکه های عصبی و یادگیری عمیق هست.

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

سال ۲۰۲۲ منتشر شده و گفتم بزارم اینجا که ساده بهش دسترسی داشته باشید.
Hands_On_Machine_Learning_with_Scikit_Learn,_Keras,_and_TensorFlow.pdf
68 MB
Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow | Concepts, Tools, and Techniques to Build Intelligent Systems | 3rd Edition
درود به تمامی دوستان کانال TECH STASH.

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

سالی با جیب های پر از پول و ذهنی خالی از ناراحتی.

ارادتمند شما.
− ارشیا (A.R.S)
4👍1
TECH STASH
درود به تمامی دوستان کانال TECH STASH. خواستم که سال نو رو خدمت شما پیشاپیش تبریک بگم. امیدوارم که سالی پر از موفقیت، سلامتی، آرامش و خوشحالی رو داشته باشید و در تمامی عرصه های علمی پیشرفت چشمگیری داشته باشید. سالی با جیب های پر از پول و ذهنی خالی از ناراحتی.…
چشم انداز کانال تو سال بعدی به این صورت هست.

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

2. مطالب و توضیحات تخصصی بیشتر بشه. همونطور که میدونید این فیلد خیلی سنگینی هست و بنده همچنان خیلی فاصله دارم تا تسلط نسبتا خوبی داشته باشم. ولی تو سال آینده میخوام که مطالب رو تخصصی تر و عمیق تر کنم.

3. کانال رو فقط به مطالب یادگیری ماشین/عمیق محدود نمیکنم. به عنوان کاربر لینوکس و دوستدار نرم افزار آزاد و همچنین کسی که به مهندسی نرم افزار نیز خیلی علاقه داره قطعا مطالب مرتبطی راجب این موضوعات خواهم گذاشت، هرچند که تمرکز بنده در حال حاضر در حوزه یادگیری ماشین/عمیق هست.

ممنونم که تا الان همراه من بودید.
👍32
Happy nowruz from Tux
6
پردازش سریع دیتا ها (قسمت اول):

چند وقت پیش داشتم روی پردازش یکسری دیتا ها کار میکردم.
کاری که خیلی فرمول و پردازش های ریاضی داشت.
اولین پیاده سازی از الگوریتم نزدیک چند تا for loop داشت.
که پردازشش تقریبا 40 ثانیه طول کشید.

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

در غیر اینصورت قضیه premature optimization (بهینه سازی زودرس) رخ میده که میبینید هیچ معیاری برای مقایسه و تایید روش کارتون دارید.
میشه ضرب المثل "خشت اول گر نهد معمار کج تا ثریا می‌رود دیوار کج".

بعدش گفتم که برم و از broadcasting استفاده کنم.
و کل عملیات ها رو بدون for loop و تنها با پردازش ماتریس ها انجام بدم.

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

وقتی که میتونید فرمول های ریاضی رو به صورت broadcast شده پیاده کنید اون موقع میتونید بگید که به اندازه خوبی numpy بلدید.

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

پیاده سازی for loop رو تونستم کامپایل کنم و نزدیک 12 ثانیه شد.
جالبیش این بود که با قابلیت parallel زمان پردازش نزدیک 50 ثانیه شد.
یعنی حتی کند تر از حالت پایه.

ولی نسخه broadcasting اش اصلا کامپایل نمیشد.
به خاطر به کارگیری یکسری عملیات های numpy که توسط numba ساپورت نمیشه.

و اما خواستم یه حرکت نهایی بزنم و ببرم روی PyTorch.
خیلی تغییرات نیاز نداشت از اونجایی که تمام عملیات هایی که روی numpy استفاده میکردم توسط pytorch پشتیبانی میشن.

و در نهایت روی GPU بردم و سرعت از 0.5 ثانیه به 50 میلی ثانیه رسید.
Wow, just wow.

و میدونم که آپشن های دیگه هم هستن.
مثل JAX, cupy, Tensorflow.
ولی خب تا همینجا کافی هست.

احتمالا از JAX تو آینده استفاده کنم.
چون چیز جالبی به نظر میاد.
👍1
یه ایونت هم چند وقت پیش دیدم ولی فراموش کردم که تو کانال اعلام کنم.

Join the 5-Day Gen AI Intensive Course with Google

راجب Generative AI هست و شاید واستون جالب باشه.
شروعش از 31 March هست. تقریبا ۲ روز دیگه و به مدت ۵ روزه.

https://rsvp.withgoogle.com/events/google-generative-ai-intensive_2025q1
TECH STASH
یه ایونت هم چند وقت پیش دیدم ولی فراموش کردم که تو کانال اعلام کنم. Join the 5-Day Gen AI Intensive Course with Google راجب Generative AI هست و شاید واستون جالب باشه. شروعش از 31 March هست. تقریبا ۲ روز دیگه و به مدت ۵ روزه. https://rsvp.withgoogle.com/events/google…
این ایونت اونقدرا هم که فکر میکردم خفن نبود.
البته که برای کسایی که دوست دارن از API گوگل استفاده کنن و برنامه هایی بر پایه Generative AI درست کنن خوبه.

ولی خب خود داستان مدل سازی و train کردن این LLM ها فرق داره.

طبق اولویت هام تصمیم گرفتم که ادامه ندم و بزارم واسه دوره بعدی. چون این دومین دوره هست که این course برگزار میشه.
High Performance Python: Practical Performant Programming for Humans 2nd Edition

کتاب پایتون سریع

بحث و جدال اینکه چه زبانی سریع هست رو بزاریم کنار.
پایتون کلی تجهیزات، لایبرری ها برای پردازش دیتا و سریع تر کردن این پروسه داره.

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

پروفایلر ها، شناسایی گلوگاه ها (bottleneck)، حتی خود data structure های پایتون و تفاوت سرعتشون، numpy و pandas و حتی کامپایل کردن به سی مثل numba, cython و بقیه JIT کامپایلر ها مثل PyPy و حتی FFI ها برای اتصال زبان های دیگه به پایتون و اونقدر چیزایه دیگه که جا نمیشه.
نه فقط راجب پردازش، راجب مصرف بهینه RAM هم صحبت میشه که تاپیک خیلی مهمی هست.

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

کلا کتابیه که حتما خودم سر فرصت مناسب میخونم.
👍3
High_Performance_Python_Practical_Performant_Programming_for_Humans.pdf
10.6 MB
High Performance Python: Practical Performant Programming for Humans 2nd Edition
🔥2👍1