---
title: "init(learningRate:momentum:gradientScale:regularizationScale:clipsGradientsTo:usesNestrovMomentum:regularizationFunction:sgdMomentumVariant:)"
framework: accelerate
role: symbol
role_heading: Initializer
path: "accelerate/bnns/sgdmomentumoptimizer/init(learningrate:momentum:gradientscale:regularizationscale:clipsgradientsto:usesnestrovmomentum:regularizationfunction:sgdmomentumvariant:)"
---

# init(learningRate:momentum:gradientScale:regularizationScale:clipsGradientsTo:usesNestrovMomentum:regularizationFunction:sgdMomentumVariant:)

Returns a new stochastic gradient descent (SGD) with momentum optimizer object.

## Declaration

```swift
init(learningRate: Float, momentum: Float, gradientScale: Float, regularizationScale: Float, clipsGradientsTo gradientBounds: ClosedRange<Float>? = nil, usesNestrovMomentum: Bool, regularizationFunction: BNNSOptimizerRegularizationFunction, sgdMomentumVariant: BNNSOptimizerSGDMomentumVariant)
```

## Parameters

- `learningRate`: A value that specifies the learning rate.
- `momentum`: The rate of momentum decay.
- `gradientScale`: A value that specifies the gradient scaling factor.
- `regularizationScale`: A value that specifies the regularization scaling factor.
- `gradientBounds`: The values for the minimum and maximum gradients.
- `usesNestrovMomentum`: A Boolean value that specifies whether to use Nesterov momentum update.
- `regularizationFunction`: The variable that specifies the regularization function.
- `sgdMomentumVariant`: The variable that specifies the momentum variant.
