---
title: BNNS.SGDMomentumOptimizer
framework: accelerate
role: symbol
role_heading: Structure
path: accelerate/bnns/sgdmomentumoptimizer
---

# BNNS.SGDMomentumOptimizer

An optimizer that uses the stochastic gradient descent (SGD) with the momentum optimization method.

## Declaration

```swift
struct SGDMomentumOptimizer
```

## Topics

### Creating an SGD with Momentum Optimizer

- [init(learningRate:momentum:gradientScale:regularizationScale:clipsGradientsTo:usesNestrovMomentum:regularizationFunction:sgdMomentumVariant:)](accelerate/bnns/sgdmomentumoptimizer/init(learningrate:momentum:gradientscale:regularizationscale:clipsgradientsto:usesnestrovmomentum:regularizationfunction:sgdmomentumvariant:).md)

### Inspecting the Properties of an SGD with Momentum Optimizer

- [learningRate](accelerate/bnns/sgdmomentumoptimizer/learningrate.md)
- [momentum](accelerate/bnns/sgdmomentumoptimizer/momentum.md)
- [gradientScale](accelerate/bnns/sgdmomentumoptimizer/gradientscale.md)
- [regularizationScale](accelerate/bnns/sgdmomentumoptimizer/regularizationscale.md)
- [gradientBounds](accelerate/bnns/sgdmomentumoptimizer/gradientbounds.md)
- [gradientClipping](accelerate/bnns/sgdmomentumoptimizer/gradientclipping.md)
- [BNNS.GradientClipping](accelerate/bnns/gradientclipping.md)
- [usesNestrovMomentum](accelerate/bnns/sgdmomentumoptimizer/usesnestrovmomentum.md)
- [regularizationFunction](accelerate/bnns/sgdmomentumoptimizer/regularizationfunction.md)
- [sgdMomentumVariant](accelerate/bnns/sgdmomentumoptimizer/sgdmomentumvariant.md)
- [accumulatorCountMultiplier](accelerate/bnns/sgdmomentumoptimizer/accumulatorcountmultiplier.md)

### Initializers

- [init(learningRate:momentum:gradientScale:regularizationScale:clipsGradientsTo:usesNesterovMomentum:regularizationFunction:sgdMomentumVariant:)](accelerate/bnns/sgdmomentumoptimizer/init(learningrate:momentum:gradientscale:regularizationscale:clipsgradientsto:usesnesterovmomentum:regularizationfunction:sgdmomentumvariant:).md)
- [init(learningRate:momentum:gradientScale:regularizationScale:gradientClipping:usesNesterovMomentum:regularizationFunction:sgdMomentumVariant:)](accelerate/bnns/sgdmomentumoptimizer/init(learningrate:momentum:gradientscale:regularizationscale:gradientclipping:usesnesterovmomentum:regularizationfunction:sgdmomentumvariant:).md)

### Instance Properties

- [usesNesterovMomentum](accelerate/bnns/sgdmomentumoptimizer/usesnesterovmomentum.md)

## Relationships

### Conforms To

- [BNNSOptimizer](accelerate/bnnsoptimizer.md)

## See Also

### Optimizers

- [BNNS.AdamOptimizer](accelerate/bnns/adamoptimizer.md)
- [BNNS.AdamWOptimizer](accelerate/bnns/adamwoptimizer.md)
- [BNNS.RMSPropOptimizer](accelerate/bnns/rmspropoptimizer.md)
- [BNNSOptimizer](accelerate/bnnsoptimizer.md)
- [BNNSOptimizerRegularizationFunction](accelerate/bnnsoptimizerregularizationfunction.md)
- [BNNSOptimizerAdamFields](accelerate/bnnsoptimizeradamfields.md)
- [BNNSOptimizerAdamWithClippingFields](accelerate/bnnsoptimizeradamwithclippingfields.md)
- [BNNSOptimizerRMSPropFields](accelerate/bnnsoptimizerrmspropfields.md)
- [BNNSOptimizerRMSPropWithClippingFields](accelerate/bnnsoptimizerrmspropwithclippingfields.md)
- [BNNSOptimizerSGDMomentumFields](accelerate/bnnsoptimizersgdmomentumfields.md)
- [BNNSOptimizerSGDMomentumWithClippingFields](accelerate/bnnsoptimizersgdmomentumwithclippingfields.md)
- [BNNSOptimizerSGDMomentumVariant](accelerate/bnnsoptimizersgdmomentumvariant.md)
- [BNNSOptimizerStep(_:_:_:_:_:_:_:)](accelerate/bnnsoptimizerstep(_:_:_:_:_:_:_:).md)
- [BNNSOptimizerFunction](accelerate/bnnsoptimizerfunction.md)
