---
title: BNNS.ReductionLayer
framework: accelerate
role: symbol
role_heading: Class
path: accelerate/bnns/reductionlayer
---

# BNNS.ReductionLayer

A layer object that wraps a reduction filter and manages its deinitialization.

## Declaration

```swift
class ReductionLayer
```

## Topics

### Creating a Reduction Layer

- [init(function:input:output:weights:filterParameters:)](accelerate/bnns/reductionlayer/init(function:input:output:weights:filterparameters:).md)

### Specifying a Reduction Function

- [BNNS.ReductionFunction](accelerate/bnns/reductionfunction.md)

### Applying a Reduction Layer

- [applyBackward(batchSize:input:output:outputGradient:generatingInputGradient:generatingWeightsGradient:)](accelerate/bnns/reductionlayer/applybackward(batchsize:input:output:outputgradient:generatinginputgradient:generatingweightsgradient:).md)

### Directly Applying Reduction

- [applyReduction(_:input:output:weights:filterParameters:)](accelerate/bnns/applyreduction(_:input:output:weights:filterparameters:).md)

## Relationships

### Inherits From

- [BNNS.UnaryLayer](accelerate/bnns/unarylayer.md)

## See Also

### Reduction layers

- [applyReduction(_:input:output:weights:filterParameters:)](accelerate/bnns/applyreduction(_:input:output:weights:filterparameters:).md)
- [BNNSReduceFunction](accelerate/bnnsreducefunction.md)
- [BNNSLayerParametersReduction](accelerate/bnnslayerparametersreduction.md)
- [BNNSFilterCreateLayerReduction(_:_:)](accelerate/bnnsfiltercreatelayerreduction(_:_:).md)
- [BNNSDirectApplyReduction(_:_:)](accelerate/bnnsdirectapplyreduction(_:_:).md)
