중심 RMSProp 알고리즘에 따라 '*var'를 업데이트합니다.
중심이 있는 RMSProp 알고리즘은 (중심이 없는) 두 번째 모멘트를 사용하는 일반 RMSProp과 달리 정규화를 위해 중심이 있는 두 번째 모멘트(즉, 분산)의 추정치를 사용합니다. 이는 훈련에 도움이 되는 경우가 많지만 계산 및 메모리 측면에서 약간 더 비쌉니다.
이 알고리즘의 밀집 구현에서 mg, ms 및 mom은 grad가 0인 경우에도 업데이트되지만 이 희소 구현에서는 mg, ms 및 mom은 grad가 0인 동안 반복에서 업데이트되지 않습니다.
평균 제곱 = 감쇠 * 평균 제곱 + (1-감소) * 기울기 ** 2 평균 그라디언트 = 감쇠 * 평균 그라디언트 + (1-감소) * 기울기 델타 = 학습 속도 * 기울기 / sqrt(평균 제곱 + 엡실론 - 평균 그라디언트 ** 2)
$$ms <- rho * ms_{t-1} + (1-rho) * grad * grad$$$$mom <- momentum * mom_{t-1} + lr * grad / sqrt(ms + epsilon)$$$$var <- var - mom$$
중첩 클래스
수업 | SparseApplyCenteredRmsProp.Options | SparseApplyCenteredRmsProp 의 선택적 속성 |
상수
끈 | OP_NAME | TensorFlow 핵심 엔진에서 알려진 이 작업의 이름 |
공개 방법
출력 <T> | 출력 () 텐서의 기호 핸들을 반환합니다. |
static <T는 TType을 확장합니다. > SparseApplyCenteredRmsProp <T> | |
출력 <T> | 밖으로 () "var"와 동일합니다. |
정적 SparseApplyCenteredRmsProp.Options | useLocking (부울 useLocking) |
상속된 메서드
상수
공개 정적 최종 문자열 OP_NAME
TensorFlow 핵심 엔진에서 알려진 이 작업의 이름
공개 방법
공개 출력 <T> asOutput ()
텐서의 기호 핸들을 반환합니다.
TensorFlow 작업에 대한 입력은 다른 TensorFlow 작업의 출력입니다. 이 메서드는 입력 계산을 나타내는 기호 핸들을 얻는 데 사용됩니다.
public static SparseApplyCenteredRmsProp <T> create ( 범위 범위, 피연산자 <T> var, 피연산자 <T> mg, 피연산자 <T> ms, 피연산자 <T> mom, 피연산자 <T> lr, 피연산자 <T> rho, 피연산자 <T > 모멘텀, 피연산자 <T> 엡실론, 피연산자 <T> grad, 피연산자 <? 확장 TNumber > 인덱스, 옵션... 옵션)
새로운 SparseApplyCenteredRmsProp 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
매개변수
범위 | 현재 범위 |
---|---|
var | Variable()에서 가져와야 합니다. |
mg | Variable()에서 가져와야 합니다. |
ms | Variable()에서 가져와야 합니다. |
엄마 | Variable()에서 가져와야 합니다. |
난 | 배율 인수. 스칼라여야 합니다. |
로 | 부패율. 스칼라여야 합니다. |
엡실론 | 능선 용어. 스칼라여야 합니다. |
졸업생 | 그라데이션입니다. |
지수 | var, ms 및 mom의 첫 번째 차원에 대한 인덱스 벡터입니다. |
옵션 | 선택적 속성 값을 전달합니다. |
보고
- SparseApplyCenteredRmsProp의 새 인스턴스
공개 정적 SparseApplyCenteredRmsProp.Options useLocking (부울 useLocking)
매개변수
사용잠금 | 'True'인 경우 var, mg, ms 및 mom 텐서 업데이트는 잠금으로 보호됩니다. 그렇지 않으면 동작이 정의되지 않지만 경합이 덜 나타날 수 있습니다. |
---|