<!--
{
  "availability" : [
    "*: -",
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: -",
    "macOS: 11.0.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: -",
    "watchOS: 7.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/BNNS/RMSPropOptimizer",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Accelerate"
    ],
    "preciseIdentifier" : "s:10Accelerate4BNNSO16RMSPropOptimizerV"
  },
  "title" : "BNNS.RMSPropOptimizer"
}
-->

# BNNS.RMSPropOptimizer

An optimizer that uses the root mean square propagation (RMSProp) optimization method.

```
struct RMSPropOptimizer
```

## Topics

### Creating an RMSProp Optimizer

[`init(learningRate: Float, alpha: Float, epsilon: Float, centered: Bool, momentum: Float, gradientScale: Float, regularizationScale: Float, clipsGradientsTo: ClosedRange<Float>?, regularizationFunction: BNNSOptimizerRegularizationFunction)`](/documentation/Accelerate/BNNS/RMSPropOptimizer/init(learningRate:alpha:epsilon:centered:momentum:gradientScale:regularizationScale:clipsGradientsTo:regularizationFunction:))

Returns a new RMSProp optimizer object.

[`init(learningRate: Float, alpha: Float, epsilon: Float, centered: Bool, momentum: Float, gradientScale: Float, regularizationScale: Float, gradientClipping: BNNS.GradientClipping, regularizationFunction: BNNSOptimizerRegularizationFunction)`](/documentation/Accelerate/BNNS/RMSPropOptimizer/init(learningRate:alpha:epsilon:centered:momentum:gradientScale:regularizationScale:gradientClipping:regularizationFunction:))

Returns a new RMSProp optimizer object with gradient clipped by value or clipped by norm.

### Inspecting the Properties of an RMSProp Optimizer

[`var learningRate: Float`](/documentation/Accelerate/BNNS/RMSPropOptimizer/learningRate)

A value that specifies the learning rate.

[`var alpha: Float`](/documentation/Accelerate/BNNS/RMSPropOptimizer/alpha)

A constant that specifies smoothing.

[`var epsilon: Float`](/documentation/Accelerate/BNNS/RMSPropOptimizer/epsilon)

A term that the optimizer adds to the denominator.

[`var centered: Bool`](/documentation/Accelerate/BNNS/RMSPropOptimizer/centered)

A Boolean value that specifies whether to use the centered variant.

[`var momentum: Float`](/documentation/Accelerate/BNNS/RMSPropOptimizer/momentum)

The rate of momentum decay.

[`var gradientScale: Float`](/documentation/Accelerate/BNNS/RMSPropOptimizer/gradientScale)

A value that specifies the gradient scaling factor.

[`var regularizationScale: Float`](/documentation/Accelerate/BNNS/RMSPropOptimizer/regularizationScale)

A value that specifies the regularization scaling factor.

[`var gradientBounds: ClosedRange<Float>?`](/documentation/Accelerate/BNNS/RMSPropOptimizer/gradientBounds)

The values for the minimum and maximum gradients.

[`var gradientClipping: BNNS.GradientClipping`](/documentation/Accelerate/BNNS/RMSPropOptimizer/gradientClipping)

The gradient clipping.

[`enum GradientClipping`](/documentation/Accelerate/BNNS/GradientClipping)

Constants that describe clipping functions.

[`var regularizationFunction: BNNSOptimizerRegularizationFunction`](/documentation/Accelerate/BNNS/RMSPropOptimizer/regularizationFunction)

The variable that specifies the regularization function.

[`var accumulatorCountMultiplier: Int`](/documentation/Accelerate/BNNS/RMSPropOptimizer/accumulatorCountMultiplier)

The number of accumulators required for each parameter.

### Applying an Optimization Step

## Relationships

### Conforms To

[`BNNSOptimizer`](/documentation/Accelerate/BNNSOptimizer)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)