przepływ tensorowy:: ops:: ResourceApplyCenteredRMSProp
#include <training_ops.h>
Zaktualizuj „*var” zgodnie z wyśrodkowanym algorytmem RMSProp.
Streszczenie
Wyśrodkowany algorytm RMSProp wykorzystuje oszacowanie wyśrodkowanego drugiego momentu (tj. wariancji) do normalizacji, w przeciwieństwie do zwykłego RMSProp, który wykorzystuje (niewyśrodkowany) drugi moment. Często pomaga to w treningu, ale jest nieco droższe pod względem obliczeń i pamięci.
Należy zauważyć, że w gęstej implementacji tego algorytmu mg, ms i mama zostaną zaktualizowane, nawet jeśli grad wynosi zero, ale w tej rzadkiej implementacji mg, ms i mama nie będą aktualizowane w iteracjach, podczas których grad wynosi zero.
średnia_kwadrat = zanik * średnia_kwadrat + (1-zanik) * gradient ** 2 średnia_grad = zanik * średnia_grad + (1-zanik) * gradient
Delta = współczynnik uczenia się * gradient / sqrt(średnia_kwadrat + epsilon - średnia_grad ** 2)
mg <- rho * mg_{t-1} + (1-rho) * grad ms <- rho * ms_{t-1} + (1-rho) * grad * grad mama <- pęd * mama_{t-1 } + lr * grad / sqrt(ms - mg * mg + epsilon) var <- var - mama
Argumenty:
- zakres: Obiekt Scope
- var: Powinien pochodzić ze zmiennej ().
- mg: powinno pochodzić ze zmiennej ().
- ms: Powinno pochodzić ze zmiennej ().
- mama: Powinno pochodzić ze zmiennej ().
- lr: Współczynnik skalowania. Musi być skalarem.
- rho: Szybkość zaniku. Musi być skalarem.
- epsilon: termin grzbietowy. Musi być skalarem.
- grad: gradient.
Opcjonalne atrybuty (patrz Attrs
):
- use_locking: Jeśli
True
, aktualizacja tensorów var, mg, ms i mama jest chroniona blokadą; w przeciwnym razie zachowanie jest niezdefiniowane, ale może wykazywać mniejszą rywalizację.
Zwroty:
- utworzoną
Operation
Konstruktory i destruktory | |
---|---|
ResourceApplyCenteredRMSProp (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) | |
ResourceApplyCenteredRMSProp (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 ResourceApplyCenteredRMSProp::Attrs & attrs) |
Atrybuty publiczne | |
---|---|
operation |
Funkcje publiczne | |
---|---|
operator::tensorflow::Operation () const |
Publiczne funkcje statyczne | |
---|---|
UseLocking (bool x) |
Struktury | |
---|---|
tensorflow:: ops:: ResourceApplyCenteredRMSProp:: Attrs | Opcjonalne moduły ustawiające atrybuty dla ResourceApplyCenteredRMSProp . |
Atrybuty publiczne
działanie
Operation operation
Funkcje publiczne
ResourceApplyCenteredRMSProp
ResourceApplyCenteredRMSProp( 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 )
ResourceApplyCenteredRMSProp
ResourceApplyCenteredRMSProp( 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 ResourceApplyCenteredRMSProp::Attrs & attrs )
operator::tensorflow::Operacja
operator::tensorflow::Operation() const
Publiczne funkcje statyczne
Użyj Blokowania
Attrs UseLocking( bool x )