---
title: "applyBackward(batchSize:input:output:outputGradient:generatingInputGradient:generatingBetaGradient:generatingGammaGradient:)"
framework: accelerate
role: symbol
role_heading: Instance Method
path: "accelerate/bnns/normalizationlayer/applybackward(batchsize:input:output:outputgradient:generatinginputgradient:generatingbetagradient:generatinggammagradient:)"
---

# applyBackward(batchSize:input:output:outputGradient:generatingInputGradient:generatingBetaGradient:generatingGammaGradient:)

Applies the layer backward to generate input gradients.

## Declaration

```swift
func applyBackward(batchSize: Int, input: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor, outputGradient: BNNSNDArrayDescriptor, generatingInputGradient inputGradient: BNNSNDArrayDescriptor, generatingBetaGradient betaGradient: BNNSNDArrayDescriptor? = nil, generatingGammaGradient gammaGradient: BNNSNDArrayDescriptor? = nil) throws
```

## Parameters

- `batchSize`: The number of input-output pairs.
- `input`: The descriptor of the input.
- `output`: The descriptor of the output.
- `outputGradient`: The descriptor of the output gradient.
- `inputGradient`: The descriptor of the input gradient.
- `betaGradient`: The descriptor of the beta gradient.
- `gammaGradient`: The descriptor of the gamma gradient.

## See Also

### Applying a Normalization Layer

- [apply(batchSize:input:output:for:)](accelerate/bnns/normalizationlayer/apply(batchsize:input:output:for:).md)
