---
title: "stochasticGradientDescent(learningRate:values:gradient:name:)"
framework: metalperformanceshadersgraph
role: symbol
role_heading: Instance Method
path: "metalperformanceshadersgraph/mpsgraph/stochasticgradientdescent(learningrate:values:gradient:name:)"
---

# stochasticGradientDescent(learningRate:values:gradient:name:)

The Stochastic gradient descent performs a gradient descent.

## Declaration

```swift
func stochasticGradientDescent(learningRate learningRateTensor: MPSGraphTensor, values valuesTensor: MPSGraphTensor, gradient gradientTensor: MPSGraphTensor, name: String?) -> MPSGraphTensor
```

## Parameters

- `learningRateTensor`: Scalar tensor which indicates the learning rate to use with the optimizer
- `valuesTensor`: Values tensor, usually representing the trainable parameters
- `gradientTensor`: Partial gradient of the trainable parameters with respect to loss
- `name`: Name for the operation

## Return Value

Return Value A valid MPSGraphTensor object.

## Discussion

Discussion variable = variable - (learningRate * g) where, g is gradient of error wrt variable
