GRUBlockCellGrad

کلاس نهایی عمومی GRUBlockCellGrad

انتشار مجدد سلول GRU را برای 1 مرحله زمانی محاسبه می کند.

Args x: ورودی به سلول GRU. h_prev: ورودی وضعیت از سلول قبلی GRU. w_ru: ماتریس وزن برای گیت تنظیم مجدد و به روز رسانی. w_c: ماتریس وزن برای دروازه اتصال سلولی. b_ru: بردار بایاس برای گیت تنظیم مجدد و به روز رسانی. b_c: بردار بایاس برای دروازه اتصال سلولی. r: خروجی گیت ریست. u: خروجی گیت به روز رسانی. ج: خروجی گیت اتصال سلولی. d_h: گرادیان های تابع h_new wrt به هدف.

d_x را برمی‌گرداند: گرادیان x wrt به تابع هدف. d_h_prev: گرادیان تابع h wrt به هدف. d_c_bar گرادیان های c_bar wrt به تابع هدف. d_r_bar_u_bar گرادیان های r_bar و u_bar wrt به تابع هدف.

این هسته عملیات معادلات ریاضی زیر را پیاده سازی می کند:

توجه به علامت گذاری متغیرها:

الحاق a و b با a_b نشان داده می شود حاصل ضرب نقطه ای عنصری a و b با ab نشان داده می شود.

نکات اضافی برای وضوح:

«w_ru» را می توان به 4 ماتریس مختلف تقسیم کرد.

w_ru = [w_r_x w_u_x
         w_r_h_prev w_u_h_prev]
 
به طور مشابه، «w_c» را می توان به 2 ماتریس مختلف تقسیم کرد.
w_c = [w_c_x w_c_h_prevr]
 
در مورد سوگیری ها هم همینطور است.
b_ru = [b_ru_x b_ru_h]
 b_c = [b_c_x b_c_h]
 
نکته دیگری در مورد علامت گذاری:
d_x = d_x_component_1 + d_x_component_2
 
 where d_x_component_1 = d_r_bar * w_r_x^T + d_u_bar * w_r_x^T
 and d_x_component_2 = d_c_bar * w_c_x^T
 
 d_h_prev = d_h_prev_component_1 + d_h_prevr \circ r + d_h \circ u
 where d_h_prev_componenet_1 = d_r_bar * w_r_h_prev^T + d_u_bar * w_r_h_prev^T
 
ریاضیات پشت گرادیان های زیر:
d_c_bar = d_h \circ (1-u) \circ (1-c \circ c)
 d_u_bar = d_h \circ (h-c) \circ u \circ (1-u)
 
 d_r_bar_u_bar = [d_r_bar d_u_bar]
 
 [d_x_component_1 d_h_prev_component_1] = d_r_bar_u_bar * w_ru^T
 
 [d_x_component_2 d_h_prevr] = d_c_bar * w_c^T
 
 d_x = d_x_component_1 + d_x_component_2
 
 d_h_prev = d_h_prev_component_1 + d_h_prevr \circ r + u
 
محاسبه زیر در بسته بندی پایتون برای Gradient ها (نه در هسته گرادیان.) انجام می شود
d_w_ru = x_h_prevr^T * d_c_bar
 
 d_w_c = x_h_prev^T * d_r_bar_u_bar
 
 d_b_ru = sum of d_r_bar_u_bar along axis = 0
 
 d_b_c = sum of d_c_bar along axis = 0
 

روش های عمومی

استاتیک <T تعداد را گسترش می دهد> GRUBlockCellGrad <T>
ایجاد ( دامنه دامنه ، عملوند <T> x، عملوند <T> hPrev، عملوند <T> wRu، عملوند <T> wC، عملوند <T> bRu، عملوند <T> bC، عملوند <T> r، عملوند <T > u، عملوند <T> c، عملوند <T> dH)
روش کارخانه برای ایجاد کلاسی که عملیات GRUBlockCellGrad جدید را بسته بندی می کند.
خروجی <T>
dCBar ()
خروجی <T>
dHPrev ()
خروجی <T>
خروجی <T>
dX ()

روش های ارثی

روش های عمومی

عمومی ایستا GRUBlockCellGrad <T> ایجاد ( محدوده دامنه، عملوند <T> x، عملوند <T> hPrev، عملوند <T> wRu، عملوند <T> wC، عملوند <T> bRu، عملوند <T> bC، عملوند <T > r، عملوند <T> u، عملوند <T> c، عملوند <T> dH)

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

مولفه های
محدوده محدوده فعلی
برمی گرداند
  • یک نمونه جدید از GRUBlockCellGrad

خروجی عمومی <T> dCBar ()

خروجی عمومی <T> dHPrev ()

خروجی عمومی <T> dRBarUBar ()

خروجی عمومی <T> dX ()