TGViewer
NLP stuff NLP stuff @nlp_stuff · 3.86K subscribers
Post #304 3.61K
رستگاری تنسورها با einops

آیا در کد زدن در یادگیری عمیق تنبلید؟ آیا در استفاده از متدهایی مثل reshape و transpose و repeat و reduce گرگیجه میگیرید؟ آیا کدهای یادگیری عمیقی‌تان بعد از نوشتن غیرقابل فهم می‌شوند؟ ما به شما کتابخانه einops را پیشنهاد می‌کنیم!
ماجرای این کتابخونه از نمادگذاری انیشتین آغاز میشه. انیشتین در سال ۱۹۱۶ این نمادگذاری رو برای راحت‌تر نشون دادن محاسبات تنسوری معرفی کرد و از اونجا که واقعا نسبت به فرمول‌نویسی‌های قدیم سهولت و فهم بیشتری داشت، این نمادگذاری رایج شد. حالا با الهام‌گیری از همین نمادگذاری، کتابخونه einops برای سهولت در نوشتن عملیات‌های تنسوری ارائه شده. حالا با یک مثال کوتاه خودتون ببنید که چطوری با einops میشه کد خط اول ذیل رو خیلی راحت تر و قابل خوندن تر به صورت کد خط دوم نوشت.
y = x.transpose(0, 2, 3, 1)
y = einops.rearrange(x, 'b c h w -> b h w c')
این کد اومده تنسوری که ابعادش b c h w بوده (مثل بچ b از تصویرها که c کانال دارند و ابعاد هر تصویر هم h و w هستند) رو به b h w c تغییر داده، این کد رو اگه با پایتورچ خالص بخواهید بنویسید، اون کد خیلی زشت و ناخوانا میشه چون توش ابعاد رو با صفر و یک و ... باید مشخص کنید که اولا هم ریسک باگ زدن رو بالا میبره و بعدا که میخواید کدتون رو بخونید به توبه میفتید)
به طور خیلی اجمالی، کتابخونه einops سه متد پایه rearrange و repeat و reduce داره که باهاش میشه عملیات‌های تنسوری مختلف رو در جنبه‌های تغییر و تکرار و خرد‌کردن ابعاد انجام داد. این کتابخونه رو از دست ندید اگر اهل خوندن کد هم باشید می‌بینید که بسیاری از دولوپرهای مطرح دیپ لرنینگی از این کتابخونه برای کدهاشون استفاده میکنند. نکته آخر هم این که این کتابخونه برای فریمورک‌های مختلف نظیر پایتورچ و تنسورفلو و نامپای و جکس قابل استفاده است.
برای آشنایی بیشتر با einops میتونید لینک‌های زیر رو بببنید:

لینک رپوی einops:
https://github.com/arogozhnikov/einops
لینک‌های مفید برای آشنایی با einops:
https://cgarciae.github.io/einops/
https://openreview.net/pdf?id=oapKSVM2bcj

پ.ن.: هر چه قدر شما بیشتر شیر کردید انرژی بیشتری برای ادامه و درست‌کردن پست‌های بهتر می‌گیریم. مرسی که تا همینجا هم خیلی بهمون لطف داشتید.


#tool

@nlp_stuff
GitHub GitHub - arogozhnikov/einops: Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and… Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and others) - arogozhnikov/einops
More from @nlp_stuff
  1. Jan 6, 2026اندر حکایات بازی با کلمات: AI Engineering vs ML Engineering/Data Scientist این روزها عناوی…
  2. Mar 3, 2025مفهوم Agent چیست و چگونه کار می‌کنند؟ خانم چیپ هوین بلاگ پست مفصلی راجع به Agent (به قول ر…
  3. Feb 28, 2025خلاصه‌تر فکر کن از اونجایی که در مسائل استدلالی (reasoning) ، مدل برای رسیدن به جواب نهایی…
  4. Feb 23, 2025چه قدر تا بی‌کارشدن بک‌اندی‌ها فاصله داریم؟ عمده استفاده برنامه‌نویس‌ها از LLM‌ها در سطح پ…
  5. Feb 20, 2025به سوی سیستم‌۲ پیشرفت‌های هوش مصنوعی در دهه ۲۰۱۰، مدیون آموزش مدل‌های بزرگ دیپ لرنینگی روی…
  6. Feb 8, 2025مدل‌های استدلالی (reasoning) چیست و چگونه ساخته می‌شوند؟ حتما این روزها بارها مدل‌های استد…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →