יום הקהילה ML הוא 9 בנובמבר! הצטרפו אלינו עדכונים מ- TensorFlow, JAX, ועוד למידע נוסף

זרימת טנסור :: אופ :: החל CenterRMSProp

#include <training_ops.h>

עדכן את '* var' בהתאם לאלגוריתם RMSProp המרוכז.

סיכום

האלגוריתם המרוכז של RMSProp משתמש באומדן של הרגע השני המרוכז (כלומר השונות) לנורמליזציה, בניגוד ל- RMSProp הרגיל, המשתמש ברגע השני (ללא מרכז). זה עוזר לעיתים קרובות באימונים, אך הוא מעט יקר יותר מבחינת חישוב וזיכרון.

שים לב כי ביישום צפוף של אלגוריתם זה, מ"ג, אלפיות, ואמא יתעדכנו גם אם הציון הוא אפס, אך ביישום דליל זה, מ"ג, אלפיות, ואמא לא יתעדכנו באיטרציות שבמהלכן השיעור הוא אפס.

ריבוע ממוצע = ריקבון * ריבוע ממוצע + (1-ריקבון) * שיפוע ** 2 ממוצע_דרג = ריקבון * ממוצע_דרג + (ריקבון אחד) * שיפוע

דלתא = שיעור_למידה * שיפוע / sqrt (ממוצע_כיכר + אפסון - ממוצע_גרד ** 2)

מ"ג <- rho * mg_ {t-1} + (1-rho) * grad ms <- rho * ms_ {t-1} + (1-rho) * grad * grad mom <- momentum * mom_ {t-1 } + lr * grad / sqrt (ms - mg * mg + epsilon) var <- var - mom

טענות:

  • היקף: אובייקט Scope
  • var: צריך להיות מתוך משתנה ().
  • מ"ג: צריך להיות משתנה ().
  • ms: צריך להיות משתנה ().
  • אמא: צריכה להיות משתנה ().
  • lr: גורם קנה מידה. חייב להיות סקלרי.
  • rho: שיעור דעיכה. חייב להיות סקלרי.
  • אפסילון: מונח רכס. חייב להיות סקלרי.
  • דרגה: השיפוע.

תכונות אופציונליות (ראה Attrs ):

  • use_locking: אם True , עדכון של טנזורי ה- var, mg, ms ו- mom מוגן באמצעות נעילה; אחרת ההתנהגות אינה מוגדרת, אך עשויה להפגין פחות מחלוקת.

החזרות:

קונסטרוקטורים ומשחתנים

ApplyCenteredRMSProp (const :: tensorflow::Scope & scope, :: tensorflow::Input var, :: tensorflow::Input mg, :: tensorflow::Input ms, :: tensorflow::Input mom, :: tensorflow::Input lr, :: tensorflow::Input rho, :: tensorflow::Input momentum, :: tensorflow::Input epsilon, :: tensorflow::Input grad)
ApplyCenteredRMSProp (const :: tensorflow::Scope & scope, :: tensorflow::Input var, :: tensorflow::Input mg, :: tensorflow::Input ms, :: tensorflow::Input mom, :: tensorflow::Input lr, :: tensorflow::Input rho, :: tensorflow::Input momentum, :: tensorflow::Input epsilon, :: tensorflow::Input grad, const ApplyCenteredRMSProp::Attrs & attrs)

תכונות ציבוריות

operation
out

פונקציות ציבוריות

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

פונקציות סטטיות ציבוריות

UseLocking (bool x)

סטרוקטורים

tensorflow :: ops :: ApplyCenteredRMSProp :: Attrs

קובעי תכונות אופציונליים עבור ApplyCenteredRMSProp .

תכונות ציבוריות

מבצע

Operation operation

הַחוּצָה

::tensorflow::Output out

פונקציות ציבוריות

החל CenterRMSProp

 ApplyCenteredRMSProp(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input var,
  ::tensorflow::Input mg,
  ::tensorflow::Input ms,
  ::tensorflow::Input mom,
  ::tensorflow::Input lr,
  ::tensorflow::Input rho,
  ::tensorflow::Input momentum,
  ::tensorflow::Input epsilon,
  ::tensorflow::Input grad
)

החל CenterRMSProp

 ApplyCenteredRMSProp(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input var,
  ::tensorflow::Input mg,
  ::tensorflow::Input ms,
  ::tensorflow::Input mom,
  ::tensorflow::Input lr,
  ::tensorflow::Input rho,
  ::tensorflow::Input momentum,
  ::tensorflow::Input epsilon,
  ::tensorflow::Input grad,
  const ApplyCenteredRMSProp::Attrs & attrs
)

צוֹמֶת

::tensorflow::Node * node() const 

אופרטור :: זרימת טנסור :: קלט

 operator::tensorflow::Input() const 

אופרטור :: זרימת טנסור :: פלט

 operator::tensorflow::Output() const 

פונקציות סטטיות ציבוריות

UseLocking

Attrs UseLocking(
  bool x
)