مشتقگیری خودکار ai.autograd
مشتقگیری خودکار معکوس برای آموزش مدلها.
واردسازی هوش مصنوعی.مشتقگیری خودکار
نام آرگومانها شناسهی خود کد است و معادل فارسی ندارد؛ گونهها، کلیدواژهها و نام بستهها با معادل فارسی نوشته میشوند.
آموزش مدل یعنی کم کردن زیان با گرادیان. این بسته هر محاسبه را روی یک نوار ثبت میکند و پسانتشار گرادیان زیان را برای همهی ورودیها حساب میکند. تابعها به جای تانسور، شمارهی گره برمیگردانند؛ مقدار را با مقدار و گرادیان را با گرادیان بخوانید.
برای زیان سفارشی، لایهی تازه یا هر تابعی که شیبش را لازم دارید مستقیم از این بسته استفاده کنید. برای شبکههای معمولی، لایههای آماده در شبکه عصبی و بهینهسازها در بهینهسازی هستند که هر دو روی همین بسته ساخته شدهاند. خود مقدارها تانسور هستند.
اشتباههای رایج
- در آغاز هر گام نوار را
بازنشانیکنید. این کار هر مقدار و گرادیانی را که نوار ساخته آزاد میکند، پس تانسوری که ازمقداریاگرادیانگرفتهاید پس از آن از بین رفته است؛ اگر لازمش دارید پیش از آن باتانسور.همانندنگهش دارید. ورودی،پایشوپارامتررونوشت نمیگیرند: نوار خود تانسور شما را میخواند، پس پیش ازپسانتشارآن را تغییر ندهید و آزاد نکنید.ثابترونوشت میگیرد.- گرادیانها به تانسورهایی که به
پارامترمیدهید افزوده میشوند، هیچوقت جایگزین نمیشوند. در هر گام صفرشان کنید. پسانتشارروی زیانی که بیش از یک مقدار دارد، آن را مجموع مقدارهایش در نظر میگیرد.- هنگام ارزیابی مدل
نوار.training = نادرستبگذارید: آنوقت حذف تصادفی کاری نمیکند و نرمالسازی دسته از میانگینهای جاریاش استفاده میکند. عددی که بهنوار جدیدمیدهید بذر عددهای تصادفی حذف تصادفی است.
مشتق بی حساب و کتاب دستی
تانسوری را با پایش به نوار بدهید، از آن عبارتی بسازید، و پسانتشار میگوید با تغییر هر ورودی نتیجه چقدر تغییر میکند. زیان باید یک عدد تنها باشد، پس برنامه پنج مقدار f(x) = x³ - 2x را جمع میزند؛ چون هر مقدار فقط به یک نقطه بستگی دارد، گرادیان مجموع همان شیب در هر نقطه است. ستون آخر شیبی است که با دست حساب شده، 3x² - 2، برای مقایسه.
واردسازی هوش مصنوعی.مشتقگیری خودکار
واردسازی هوش مصنوعی.تانسور
تابع ریشه:
ناپایا نوار := مشتقگیری خودکار.نوار جدید(۱)
ناپایا نقطه ها := وکتور {} برگردان وکتور<اعشار۳۲>
هر م در [-۲.۰، -۱.۰، ۰.۰، ۱.۰، ۲.۰]:
نقطه ها.بیفزا(م برگردان اعشار۳۲)
پایان
ناپایا شکل := تانسور.شکل یک(۵)
ناپایا ایکس ها := تانسور.از آرایه(شکل، نقطه ها)
ایکس := مشتقگیری خودکار.پایش(نوار، ایکس ها)
مکعب := مشتقگیری خودکار.توان عددی(نوار، ایکس، ۳.۰)
تابعک := مشتقگیری خودکار.تفریق(نوار، مکعب، مشتقگیری خودکار.مقیاس(نوار، ایکس، ۲.۰))
مشتقگیری خودکار.پسانتشار(نوار، مشتقگیری خودکار.مجموع(نوار، تابعک))
مقدارها := مشتقگیری خودکار.مقدار(نوار، تابعک)
شیب ها := مشتقگیری خودکار.گرادیان(نوار، ایکس)
تکرار ۵ در ی:
نقطه := ایکس ها.عنصر(ی)
سرچاپ "x ="، نقطه، "f ="، مقدارها.عنصر(ی)، "شیب ="، شیب ها.عنصر(ی)، "مورد انتظار"، ۳.۰ * نقطه * نقطه - ۲.۰
پایان
نوار.آزادسازی()
پایانحلقهی آموزش: برازش یک خط
کل شکل آموزش در همین چند خط است. وزنها بیرون از نوار زندگی میکنند و کنار هر کدام تانسور گرادیانی همشکل آن است. هر گام نوار را با بازنشانی پاک میکند، گرادیانها را صفر میکند، گذر رو به جلو را ضبط میکند (با پارامتر برای وزنها، ورودی برای داده و ثابت برای هدفها)، بعد پسانتشار را صدا میزند و هر وزن را با جمع مقیاسدار از بستهی تانسور کمی خلاف گرادیانش جابهجا میکند.
واردسازی هوش مصنوعی.مشتقگیری خودکار
واردسازی هوش مصنوعی.تانسور
واردسازی تبدیل
تابع ستون(مقدارها: اعشار۶۴[]): تانسور.تانسور:
ناپایا داده := وکتور {} برگردان وکتور<اعشار۳۲>
هر م در مقدارها:
داده.بیفزا(م برگردان اعشار۳۲)
پایان
ناپایا شکل := تانسور.شکل دو(مقدارها.طول()، ۱)
برگشت تانسور.از آرایه(شکل، داده)
پایان
تابع ریشه:
ناپایا ایکس ها := ستون([۰.۰، ۱.۰، ۲.۰، ۳.۰، ۴.۰])
ناپایا ایگرگ ها := ستون([۱.۱، ۲.۹، ۵.۲، ۶.۸، ۹.۱])
ناپایا وزن := تانسور.صفرها دو(۱، ۱)
ناپایا سوگیری := تانسور.صفرها دو(۱، ۱)
ناپایا گرادیان وزن := تانسور.صفرها دو(۱، ۱)
ناپایا گرادیان سوگیری := تانسور.صفرها دو(۱، ۱)
ناپایا نوار := مشتقگیری خودکار.نوار جدید(۱)
تکرار ۲۰۱ در گام:
نوار.بازنشانی()
تانسور.تنظیم همه(گرادیان وزن، ۰.۰)
تانسور.تنظیم همه(گرادیان سوگیری، ۰.۰)
گره وزن := مشتقگیری خودکار.پارامتر(نوار، وزن، گرادیان وزن)
گره سوگیری := مشتقگیری خودکار.پارامتر(نوار، سوگیری، گرادیان سوگیری)
حدس := مشتقگیری خودکار.جمع(نوار، مشتقگیری خودکار.ضرب ماتریسی(نوار، مشتقگیری خودکار.ورودی(نوار، ایکس ها)، گره وزن)، گره سوگیری)
زیان := مشتقگیری خودکار.خطای میانگین مربعات(نوار، حدس، مشتقگیری خودکار.ثابت(نوار، ایگرگ ها))
مشتقگیری خودکار.پسانتشار(نوار، زیان)
تانسور.جمع مقیاسدار(وزن، گرادیان وزن، -۰.۰۲)
تانسور.جمع مقیاسدار(سوگیری، گرادیان سوگیری، -۰.۰۲)
اگر گام % ۵۰ == ۰:
سرچاپ "گام"، گام، "زیان"، تبدیل.قالب اعشار با دقت(مشتقگیری خودکار.مقدار(نوار، زیان).عنصر(۰)، ۳)
پایان
پایان
سرچاپ "y ="، تبدیل.قالب اعشار با دقت(وزن.عنصر(۰)، ۲)، "* x +"، تبدیل.قالب اعشار با دقت(سوگیری.عنصر(۰)، ۲)
نوار.آزادسازی()
پایانداده همان خط y = 2x + 1 با کمی نویز است و زیان به جای صفر شدن نزدیک اندازهی نویز آرام میگیرد. اگر صفر کردن گرادیانها را فراموش کنید، از گامی به گام بعد روی هم جمع میشوند و مثل نرخ یادگیریای رفتار میکنند که مدام بزرگتر میشود. وقتی حلقه کار کرد، بهینهسازی گام بهروزرسانی و شبکه عصبی لایهها را بر عهده میگیرند.
سنجش عددی گرادیان
بررسی گرادیان هر ورودی را به اندازهی گام کوچک h تکان میدهد، تغییر یک تابع ساده از تانسور را اندازه میگیرد و آن را با گرادیانی که به آن دادهاید مقایسه میکند. وقتی لایه یا تابع زیان تازهای مینویسید از آن استفاده کنید: تابع را یک بار با عملهای تانسوری حساب کنید، گرادیان را با نوار، و ببینید با هم میخوانند یا نه. گرادیان نادرست، مثل گرادیان دو برابر شده در آزمون دوم، رد میشود.
واردسازی هوش مصنوعی.مشتقگیری خودکار
واردسازی هوش مصنوعی.تانسور
تابع جمع نرممثبت(ت &: تانسور.تانسور): اعشار۶۴:
برگشت تانسور.مجموع همه(تانسور.لگاریتم(تانسور.جمع با عدد(تانسور.نمایی(ت)، ۱.۰)))
پایان
تابع ریشه:
ناپایا نقطه := تانسور.بازه گام(۴)
تانسور.جمع عدد درجا(نقطه، -۱.۵)
ناپایا نوار := مشتقگیری خودکار.نوار جدید(۱)
ایکس := مشتقگیری خودکار.پایش(نوار، نقطه)
ایگرگ := مشتقگیری خودکار.لگاریتم(نوار، مشتقگیری خودکار.جمع با عدد(نوار، مشتقگیری خودکار.نمایی(نوار، ایکس)، ۱.۰))
مشتقگیری خودکار.پسانتشار(نوار، مشتقگیری خودکار.مجموع(نوار، ایگرگ))
ناپایا از نوار := مشتقگیری خودکار.گرادیان(نوار، ایکس)
سرچاپ "گرادیان نوار درست است:"، مشتقگیری خودکار.بررسی گرادیان((ت_in: تانسور.تانسور): ناپایا ت := ت_in برگشت جمع نرممثبت(ت) پایان، نقطه، از نوار، ۰.۰۰۱، ۰.۰۱)
ناپایا دوبرابر := تانسور.مقیاس(از نوار، ۲.۰)
سرچاپ "گرادیان دو برابر درست است:"، مشتقگیری خودکار.بررسی گرادیان((ت_in: تانسور.تانسور): ناپایا ت := ت_in برگشت جمع نرممثبت(ت) پایان، نقطه، دوبرابر، ۰.۰۰۱، ۰.۰۱)
نوار.آزادسازی()
پایانمقایسه تقریبی است. گام خیلی کوچک در اعشاری ۳۲ بیتی دقتش را از دست میدهد و گام خیلی بزرگ خمیدگی را نمیبیند؛ 0.001 با رواداری 0.01 برای بیشتر تابعهای هموار مناسب است.
کدام تابع ورودی را به کار ببریم
| تانسور | تابع | گرادیان |
|---|---|---|
| وزنهایی که آموزش میدهید | پارامتر | به تانسور گرادیانی که میدهید افزوده میشود |
| تانسوری که شیبش را میخواهید | پایش | با گرادیان خوانده میشود |
| دادهای که به مدل میدهید | ورودی | لازم نیست |
| هدفها و عددهای ثابت | ثابت | هرگز حساب نمیشود |
گونهها
گره Node
ساختار گره| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| عملیات | op | صحیح = 0 | عملیات. |
| ورودی نخست | a | صحیح = -1 | ورودی نخست. |
| ورودی دوم | b | صحیح = -1 | ورودی دوم. |
| خروجی | out | صحیح = -1 | خروجی. |
| داده کمکی | aux | صحیح = -1 | دادهی کمکی. |
| پارامتر صحیح نخست | s0 | صحیح = 0 | پارامتر صحیح نخست. |
| پارامتر صحیح دوم | s1 | صحیح = 0 | پارامتر صحیح دوم. |
| پارامتر اعشاری | f0 | اعشار۶۴ = 0 | پارامتر اعشاری. |
واردسازی هوش مصنوعی.مشتقگیری خودکار
واردسازی هوش مصنوعی.تانسور
تابع گرد(ت: تانسور.تانسور): رشته:
ناپایا متن := ""
تکرار ت.شمار درایهها() در ش:
اگر ش > ۰:
متن += " "
پایان
متن += "" + ((ت.عنصر(ش) * ۱۰۰.۰ + ۱۰۰۰۰.۵) برگردان صحیح - ۱۰۰۰۰)
پایان
برگشت متن
پایان
تابع ریشه:
ناپایا نوار := مشتقگیری خودکار.نوار جدید(۱)
ناپایا مقدار ایکس := تانسور.بازه گام(۳)
ناپایا ثابت سه := تانسور.پرشده(تانسور.شکل یک(۳)، ۳.۰)
ایکس := مشتقگیری خودکار.پایش(نوار، مقدار ایکس)
سه := مشتقگیری خودکار.ثابت(نوار، ثابت سه)
مربع := مشتقگیری خودکار.مربع(نوار، ایکس)
خطی := مشتقگیری خودکار.ضرب درایهای(نوار، سه، ایکس)
زیان := مشتقگیری خودکار.مجموع(نوار، مشتقگیری خودکار.جمع(نوار، مربع، خطی))
مشتقگیری خودکار.پسانتشار(نوار، زیان)
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، زیان))، گرد(مشتقگیری خودکار.گرادیان(نوار، ایکس))، نوار.طول()
نوار.بازنشانی()
ا := مشتقگیری خودکار.ورودی(نوار، مقدار ایکس)
یک := مشتقگیری خودکار.جمع با عدد(نوار، ا، ۱.۰)
همه := [
مشتقگیری خودکار.تفریق(نوار، ا، یک)، مشتقگیری خودکار.تقسیم درایهای(نوار، ا، یک)، مشتقگیری خودکار.قرینه(نوار، ا)، مشتقگیری خودکار.مقیاس(نوار، ا، ۲.۰)،
مشتقگیری خودکار.نمایی(نوار، ا)، مشتقگیری خودکار.لگاریتم(نوار، یک)، مشتقگیری خودکار.تانژانت هذلولی(نوار، ا)، مشتقگیری خودکار.سیگموئید(نوار، ا)،
مشتقگیری خودکار.یکسوساز(نوار، ا)، مشتقگیری خودکار.گلو(نوار، ا)، مشتقگیری خودکار.سیلو(نوار، ا)، مشتقگیری خودکار.ریشه دوم(نوار، یک)،
مشتقگیری خودکار.توان عددی(نوار، ا، ۳.۰)، مشتقگیری خودکار.بیشینه نرم(نوار، ا)، مشتقگیری خودکار.لگاریتم بیشینه نرم(نوار، ا)، مشتقگیری خودکار.میانگین(نوار، ا)
]
هر گره در همه:
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، گره))
پایان
نوار.بازنشانی()
ناپایا ماتریسی := تانسور.تغییر شکل(تانسور.بازه گام(۶)، تانسور.شکل دو(۲، ۳))
ناپایا گرادیان م := تانسور.صفرها دو(۲، ۳)
م := مشتقگیری خودکار.پارامتر(نوار، ماتریسی، گرادیان م)
ت := مشتقگیری خودکار.ترانهاده دوبعدی(نوار، م)
ض := مشتقگیری خودکار.ضرب ماتریسی(نوار، م، ت)
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، ض))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.مجموع محور(نوار، م، ۰، نادرست)))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.میانگین محور(نوار، م، ۱، نادرست)))
ناپایا شکل := تانسور.شکل یک(۶)
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.تغییر شکل(نوار، م، شکل)))
مشتقگیری خودکار.پسانتشار(نوار، مشتقگیری خودکار.مجموع(نوار، ض))
سرچاپ گرد(گرادیان م)
نوار.آزادسازی()
پایاننوار Tape
ساختار نوار| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| مقدارها | vals | وکتور<تانسور.تانسور> | مقدار گرهها. |
| گرادیانها | grads | وکتور<تانسور.تانسور> | گرادیان گرهها. |
| مالک مقدار | owns_val | وکتور<منطقی> | نوار مالک مقدار است. |
| مالک گرادیان | owns_grad | وکتور<منطقی> | نوار مالک گرادیان است. |
| نیازمند گرادیان | needs | وکتور<منطقی> | گره گرادیان لازم دارد. |
| گرهها | nodes | وکتور<گره> | گرهها. |
| آموزش | training | منطقی = درست | حالت آموزش، پیشفرض روشن؛ وقتی خاموش باشد حذف تصادفی و نرمالسازی دسته رفتار دیگری دارند. |
| مولد تصادفی | rng | تانسور.مولد تصادفی | مولد تصادفی نوار. |
نمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
طول len
تابع طول(): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
بازنشانی reset
تابع بازنشانی()نمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
آزادسازی free
تابع آزادسازی()نمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
تابعها
نرمالسازی لایه LayerNorm
تابع نرمالسازی لایه(tp &: نوار، x: صحیح، gamma: صحیح، beta: صحیح، eps: اعشار۶۴): صحیحواردسازی هوش مصنوعی.مشتقگیری خودکار
واردسازی هوش مصنوعی.تانسور
تابع گرد(ت: تانسور.تانسور): رشته:
ناپایا متن := ""
تکرار ت.شمار درایهها() در ش:
اگر ش > ۰:
متن += " "
پایان
متن += "" + ((ت.عنصر(ش) * ۱۰۰.۰ + ۱۰۰۰۰.۵) برگردان صحیح - ۱۰۰۰۰)
پایان
برگشت متن
پایان
تابع مکعب(ت: تانسور.تانسور): اعشار۶۴:
ناپایا جمع := ۰.۰
تکرار ت.شمار درایهها() در ش:
جمع += ت.عنصر(ش) * ت.عنصر(ش) * ت.عنصر(ش)
پایان
برگشت جمع
پایان
تابع ریشه:
ناپایا نوار := مشتقگیری خودکار.نوار جدید(۷)
ناپایا تصویر := تانسور.تغییر شکل(تانسور.بازه گام(۱۶)، تانسور.شکل چهار(۱، ۱، ۴، ۴))
ناپایا هسته := تانسور.یکها(تانسور.شکل چهار(۲، ۱، ۲، ۲))
ناپایا سوگیری := تانسور.صفرها یک(۲)
ای := مشتقگیری خودکار.ورودی(نوار، تصویر)
وزن := مشتقگیری خودکار.ثابت(نوار، هسته)
ب := مشتقگیری خودکار.ثابت(نوار، سوگیری)
پ := مشتقگیری خودکار.پیچش دوبعدی(نوار، ای، وزن، ب، ۲، ۲، ۰، ۰)
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، پ))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.بیشینهگیری دوبعدی(نوار، ای، ۲، ۲، ۲، ۲)))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.میانگینگیری دوبعدی(نوار، ای، ۲، ۲، ۲، ۲)))
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.نرمالسازی گروهی(نوار، پ، مشتقگیری خودکار.ثابت(نوار، تانسور.یکها(تانسور.شکل یک(۲)))، مشتقگیری خودکار.ثابت(نوار، تانسور.صفرها یک(۲))، ۲، ۰.۰۰۰۰۱)))
ناپایا میانگین جاری := تانسور.صفرها یک(۲)
ناپایا واریانس جاری := تانسور.یکها(تانسور.شکل یک(۲))
ن := مشتقگیری خودکار.نرمالسازی دسته(نوار، پ، مشتقگیری خودکار.ثابت(نوار، تانسور.یکها(تانسور.شکل یک(۲)))، مشتقگیری خودکار.ثابت(نوار، تانسور.صفرها یک(۲))، میانگین جاری، واریانس جاری، ۰.۱، ۰.۰۰۰۰۱)
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، ن))، گرد(میانگین جاری)
ناپایا ردیف := تانسور.تغییر شکل(تانسور.بازه گام(۸)، تانسور.شکل دو(۲، ۴))
ر := مشتقگیری خودکار.ورودی(نوار، ردیف)
گاما := مشتقگیری خودکار.ثابت(نوار، تانسور.یکها(تانسور.شکل یک(۴)))
بتا := مشتقگیری خودکار.ثابت(نوار، تانسور.صفرها یک(۴))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.نرمالسازی لایه(نوار، ر، گاما، بتا، ۰.۰۰۰۰۱)))
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.نرمالسازی جذر میانگین مربعات(نوار، ر، گاما، ۰.۰۰۰۰۱)))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.باریکسازی(نوار، ر، ۱، ۱، ۲)))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.برش محور صفر(نوار، ر، ۱، ۱)))
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.پیوند دو(نوار، ر، ر، ۰)))
ناپایا ترتیب := وکتور {} برگردان وکتور<صحیح>
ترتیب.بیفزا(۱)
ترتیب.بیفزا(۰)
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.جایگشت(نوار، ر، ترتیب)))
ناپایا سه بعدی := تانسور.یکها(تانسور.شکل سه(۲، ۲، ۳))
س := مشتقگیری خودکار.ورودی(نوار، سه بعدی)
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.ضرب ماتریسی دستهای(نوار، س، مشتقگیری خودکار.جایگشت(نوار، س، تانسور.شکل سه(۰، ۲، ۱)))))
سرچاپ تانسور.رشته شکل(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.جاسازی چرخشی(نوار، ر، ۲، ۱، ۰، ۱۰۰۰۰.۰)))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.حذف تصادفی(نوار، ر، ۰.۰)))
ناپایا واژگان := تانسور.تغییر شکل(تانسور.بازه گام(۶)، تانسور.شکل دو(۳، ۲))
ناپایا شمارهها := وکتور {} برگردان وکتور<صحیح>
شمارهها.بیفزا(۲)
شمارهها.بیفزا(۰)
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.جاسازی(نوار، مشتقگیری خودکار.ثابت(نوار، واژگان)، شمارهها)))
ناپایا پیشبینی := تانسور.پرشده(تانسور.شکل یک(۲)، ۱.۰)
ناپایا هدف := تانسور.صفرها یک(۲)
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.خطای میانگین مربعات(نوار، مشتقگیری خودکار.ورودی(نوار، پیشبینی)، مشتقگیری خودکار.ثابت(نوار، هدف))))
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.آنتروپی دودویی لوجیت(نوار، مشتقگیری خودکار.ورودی(نوار، هدف)، مشتقگیری خودکار.ثابت(نوار، هدف))))
ناپایا لوجیت := تانسور.صفرها دو(۲، ۳)
سرچاپ گرد(مشتقگیری خودکار.مقدار(نوار، مشتقگیری خودکار.آنتروپی متقاطع لوجیت(نوار، مشتقگیری خودکار.ورودی(نوار، لوجیت)، شمارهها)))
ناپایا نقطه := تانسور.بازه گام(۳)
ناپایا تحلیلی := تانسور.ضرب درایهای(تانسور.مربع(نقطه)، تانسور.پرشده(تانسور.شکل یک(۳)، ۳.۰))
سرچاپ مشتقگیری خودکار.بررسی گرادیان((ت: تانسور.تانسور): برگشت مکعب(ت) پایان، نقطه، تحلیلی، ۰.۰۰۱، ۰.۰۱)
نوار.آزادسازی()
پایاننرمالسازی جذر میانگین مربعات RMSNorm
تابع نرمالسازی جذر میانگین مربعات(tp &: نوار، x: صحیح، gamma: صحیح، eps: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
نرمالسازی دسته BatchNorm
تابع نرمالسازی دسته(tp &: نوار، x: صحیح، gamma: صحیح، beta: صحیح، running_mean &: تانسور.تانسور، running_var &: تانسور.تانسور، momentum: اعشار۶۴، eps: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
نرمالسازی گروهی GroupNorm
تابع نرمالسازی گروهی(tp &: نوار، x: صحیح، gamma: صحیح، beta: صحیح، groups: صحیح، eps: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
پیچش دوبعدی Conv2D
تابع پیچش دوبعدی(tp &: نوار، x: صحیح، w: صحیح، b: صحیح، sh: صحیح، sw: صحیح، ph: صحیح، pw: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
بیشینهگیری دوبعدی MaxPool2D
تابع بیشینهگیری دوبعدی(tp &: نوار، x: صحیح، kh: صحیح، kw: صحیح، sh: صحیح، sw: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
میانگینگیری دوبعدی AvgPool2D
تابع میانگینگیری دوبعدی(tp &: نوار، x: صحیح، kh: صحیح، kw: صحیح، sh: صحیح، sw: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
نوار جدید NewTape
تابع نوار جدید(seed: صحیح۶۴): نوارنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
ورودی Input
تابع ورودی(tp &: نوار، t &: تانسور.تانسور): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
ثابت Constant
تابع ثابت(tp &: نوار، t &: تانسور.تانسور): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
پایش Watch
تابع پایش(tp &: نوار، t &: تانسور.تانسور): صحیحگرادیان خوانده شود.نمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
پارامتر Param
تابع پارامتر(tp &: نوار، val &: تانسور.تانسور، grad &: تانسور.تانسور): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
مقدار Value
تابع مقدار(tp &: نوار، v: صحیح): تانسور.تانسوربازنشانی آزادش میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
گرادیان Grad
تابع گرادیان(tp &: نوار، v: صحیح): تانسور.تانسورنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
پسانتشار Backward
تابع پسانتشار(tp &: نوار، loss: صحیح)نمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
بررسی گرادیان GradCheck
تابع بررسی گرادیان(f: تابع(تانسور.تانسور): اعشار۶۴، x &: تانسور.تانسور، analytic &: تانسور.تانسور، h: اعشار۶۴، tol: اعشار۶۴): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
ضرب ماتریسی دستهای BatchMatMul
تابع ضرب ماتریسی دستهای(tp &: نوار، a: صحیح، b: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
جایگشت Permute
تابع جایگشت(tp &: نوار، a: صحیح، perm &: وکتور<صحیح>): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
جاسازی Embedding
تابع جاسازی(tp &: نوار، weight: صحیح، indices &: وکتور<صحیح>): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
حذف تصادفی Dropout
تابع حذف تصادفی(tp &: نوار، a: صحیح، p: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
باریکسازی Narrow
تابع باریکسازی(tp &: نوار، a: صحیح، axis: صحیح، start: صحیح، len: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
برش محور صفر SliceAxis0
تابع برش محور صفر(tp &: نوار، a: صحیح، start: صحیح، len: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
پیوند دو Concat2
تابع پیوند دو(tp &: نوار، a: صحیح، b: صحیح، axis: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
جاسازی چرخشی RoPE
تابع جاسازی چرخشی(tp &: نوار، a: صحیح، seq: صحیح، heads: صحیح، offset: صحیح، theta: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
جمع Add
تابع جمع(tp &: نوار، a: صحیح، b: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
تفریق Sub
تابع تفریق(tp &: نوار، a: صحیح، b: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
ضرب درایهای Mul
تابع ضرب درایهای(tp &: نوار، a: صحیح، b: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
تقسیم درایهای Div
تابع تقسیم درایهای(tp &: نوار، a: صحیح، b: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
قرینه Neg
تابع قرینه(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
مقیاس Scale
تابع مقیاس(tp &: نوار، a: صحیح، s: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
جمع با عدد AddScalar
تابع جمع با عدد(tp &: نوار، a: صحیح، s: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
نمایی Exp
تابع نمایی(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
لگاریتم Log
تابع لگاریتم(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
تانژانت هذلولی Tanh
تابع تانژانت هذلولی(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
سیگموئید Sigmoid
تابع سیگموئید(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
یکسوساز Relu
تابع یکسوساز(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
گلو Gelu
تابع گلو(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
ریشه دوم Sqrt
تابع ریشه دوم(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
مربع Square
تابع مربع(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
توان عددی PowScalar
تابع توان عددی(tp &: نوار، a: صحیح، p: اعشار۶۴): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
سیلو Silu
تابع سیلو(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
ضرب ماتریسی MatMul
تابع ضرب ماتریسی(tp &: نوار، a: صحیح، b: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
مجموع Sum
تابع مجموع(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
میانگین Mean
تابع میانگین(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
مجموع محور SumAxis
تابع مجموع محور(tp &: نوار، a: صحیح، axis: صحیح، keepdim: منطقی): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
میانگین محور MeanAxis
تابع میانگین محور(tp &: نوار، a: صحیح، axis: صحیح، keepdim: منطقی): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
بیشینه نرم Softmax
تابع بیشینه نرم(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
لگاریتم بیشینه نرم LogSoftmax
تابع لگاریتم بیشینه نرم(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
تغییر شکل Reshape
تابع تغییر شکل(tp &: نوار، a: صحیح، shape &: وکتور<صحیح>): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
ترانهاده دوبعدی Transpose2D
تابع ترانهاده دوبعدی(tp &: نوار، a: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Basics.salam
خطای میانگین مربعات MSELoss
تابع خطای میانگین مربعات(tp &: نوار، pred: صحیح، target: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
آنتروپی متقاطع لوجیت CrossEntropyLogits
تابع آنتروپی متقاطع لوجیت(tp &: نوار، logits: صحیح، targets &: وکتور<صحیح>): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam
آنتروپی دودویی لوجیت BCEWithLogits
تابع آنتروپی دودویی لوجیت(tp &: نوار، logits: صحیح، target: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: ai-autograd-Layers.salam