Kldivloss¶

ساخت وبلاگ

برای جلوگیری از مشکلات زیر آب هنگام محاسبه این مقدار ، این ضرر انتظار دارد که ورودی آرگومان در فضای ورود به سیستم باشد. اگر log_target = درست باشد ، ممکن است هدف آرگومان در فضای ورود به سیستم نیز ارائه شود.

به طور خلاصه ، این عملکرد تقریباً معادل محاسبات است

if نه log_target: # پیش فرض از دست دادن_ نقطه نظر = هدف * (هدف.ورود به سیستم() - ورودی) دیگر: از دست دادن_ نقطه نظر = هدف.بیرونی() * (هدف - ورودی) 

و سپس بسته به کاهش استدلال ، این نتیجه را کاهش می دهد

if کاهش == "منظور داشتن": # پیش فرض ضرر - زیان = از دست دادن_ نقطه نظر.منظور داشتن() الیف کاهش == "batchmean": # ریاضی درست است ضرر - زیان = از دست دادن_ نقطه نظر.جمع() / ورودی.اندازه(0) الیف کاهش == "جمع": ضرر - زیان = از دست دادن_ نقطه نظر.جمع() دیگر: # کاهش == "هیچ" ضرر - زیان = از دست دادن_ نقطه نظر 

به عنوان تمام ضررهای دیگر در Pytorch ، این عملکرد انتظار دارد که اولین آرگومان ، ورودی ، خروجی مدل (به عنوان مثال شبکه عصبی) و دوم ، هدف ، مشاهدات در مجموعه داده باشد. این با نماد ریاضی استاندارد K L (P ∣ ∣ q) Kl (P || q) K L (P ∣∣ Q) متفاوت است که در آن P P P نشان دهنده توزیع مشاهدات و Q Q q است.

کاهش = "معنی" مقدار واگرایی KL واقعی را بر نمی گرداند ، لطفاً از کاهش = "batchmean" استفاده کنید که با تعریف ریاضی هماهنگ است. در یک نسخه آینده ، "میانگین" تغییر خواهد کرد تا همان "Batchmean" باشد.

  • size_avery (bool ، اختیاری) - مستهلک شده (به کاهش مراجعه کنید). به طور پیش فرض ، ضررها به طور متوسط بر روی هر عنصر ضرر در دسته قرار می گیرد. توجه داشته باشید که برای برخی از تلفات ، در هر نمونه عناصر مختلفی وجود دارد. اگر Field Size_a Avenice روی False تنظیم شود ، در عوض ضررها برای هر مینی بوچ خلاصه می شود. نادیده گرفته شده در هنگام کاهش نادرست است. پیش فرض: درست است
  • کاهش (BOOL ، اختیاری) - مستهلک شده (به کاهش مراجعه کنید). به طور پیش فرض ، تلفات به طور متوسط یا خلاصه ای از مشاهدات مربوط به هر مینی بوچ بسته به اندازه_آور اندازه گیری می شود. هنگامی که کاهش نادرست است ، به جای آن یک عنصر ضرر را برای هر دسته باز می گرداند و اندازه_آور را نادیده می گیرد. پیش فرض: درست است
  • کاهش (STR ، اختیاری) - کاهش را برای استفاده از خروجی مشخص می کند. پیش فرض: "معنی"
  • log_target (bool ، اختیاری) - مشخص می کند که آیا هدف فضای ورود به سیستم است یا خیر. پیش فرض: نادرست
  • ورودی: (∗) ( *) (∗) ، جایی که ∗ * ∗ به معنای هر تعداد ابعاد است.
  • هدف: (∗) (*) (∗) ، همان شکل ورودی.
  • خروجی: مقیاس به طور پیش فرض. اگر کاهش "هیچ یک" نیست ، سپس (∗) (*) (∗) ، همان شکل ورودی.
>>> وارد كردن torch. . functional as F >>> kl_loss = .کلوتلوس(کاهش="batchmean") >>> # ورودی باید توزیع در فضای ورود به سیستم باشد >>> ورودی = F.log_softmax(مشعل.رند(3, 5, نیاز به_گراد=درست است، واقعی), کم نور=1) >>> # نمونه ای از توزیع ها. معمولاً این از مجموعه داده می شود >>> هدف = F.نرم(مشعل.سر(3, 5), کم نور=1) >>> خروجی = kl_loss(ورودی, هدف) >>> kl_loss = .کلوتلوس(کاهش="batchmean", log_target=درست است، واقعی) >>> log_target = F.log_softmax(مشعل.سر(3, 5), کم نور=1) >>> خروجی = kl_loss(ورودی, log_target) 

© کپی رایت 2022 ، همکاران Pytorch.

منصة التداول الأكثر ثقة...
ما را در سایت منصة التداول الأكثر ثقة دنبال می کنید

برچسب : نویسنده : احمد نجفی بازدید : <-PostHit-> تاريخ : جمعه 1 ارديبهشت 1402 ساعت: 21:05