<!--
{
  "availability" : [
    "*: -",
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: -",
    "macOS: 12.0.0 -",
    "tvOS: 15.0.0 -",
    "visionOS: -",
    "watchOS: 8.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/BNNS/AdamWOptimizer",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Accelerate"
    ],
    "preciseIdentifier" : "s:10Accelerate4BNNSO14AdamWOptimizerV"
  },
  "title" : "BNNS.AdamWOptimizer"
}
-->

# BNNS.AdamWOptimizer

An optimizer that uses the AdamW optimization algorithm.

```
struct AdamWOptimizer
```

## Topics

### Creating an AdamW Optimizer

[`init(learningRate:beta1:beta2:timeStep:epsilon:gradientScale:weightDecay:gradientClipping:usesAMSGrad:)`](/documentation/Accelerate/BNNS/AdamWOptimizer/init(learningRate:beta1:beta2:timeStep:epsilon:gradientScale:weightDecay:gradientClipping:usesAMSGrad:))

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

### Inspecting the Properties of an AdamW Optimizer

[`learningRate`](/documentation/Accelerate/BNNS/AdamWOptimizer/learningRate)

A value that specifies the learning rate.

[`beta1`](/documentation/Accelerate/BNNS/AdamWOptimizer/beta1)

A value that specifies the first-moment constant, in the range `0` to `1`.

[`beta2`](/documentation/Accelerate/BNNS/AdamWOptimizer/beta2)

A value that specifies the second-moment constant, in the range `0` to `1`.

[`timeStep`](/documentation/Accelerate/BNNS/AdamWOptimizer/timeStep)

A value that’s at least `1` and represents the optimizer’s current time.

[`epsilon`](/documentation/Accelerate/BNNS/AdamWOptimizer/epsilon)

The epsilon value you use to improve numerical stability.

[`gradientScale`](/documentation/Accelerate/BNNS/AdamWOptimizer/gradientScale)

A value that specifies the gradient scaling factor.

[`weightDecay`](/documentation/Accelerate/BNNS/AdamWOptimizer/weightDecay)

The weight decay coefficient.

[`gradientClipping`](/documentation/Accelerate/BNNS/AdamWOptimizer/gradientClipping)

The gradient clipping function and bounds.

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

Constants that describe clipping functions.

[`accumulatorCountMultiplier`](/documentation/Accelerate/BNNS/AdamWOptimizer/accumulatorCountMultiplier)

The number of accumulators required for each parameter.

### Applying an Optimization Step



---

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)