---
title: "apply(batchSize:inputA:inputB:output:for:)"
framework: accelerate
role: symbol
role_heading: Instance Method
path: "accelerate/bnns/fusedparameterslayer/apply(batchsize:inputa:inputb:output:for:)"
---

# apply(batchSize:inputA:inputB:output:for:)

Applies the layer to a set of input objects and writes the result to a set of output objects, where the first layer accepts two inputs.

## Declaration

```swift
func apply(batchSize: Int, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor, for learningPhase: BNNS.LearningPhase) throws
```

## Parameters

- `batchSize`: The number of input-output pairs.
- `inputA`: The descriptor of the first input.
- `inputB`: The descriptor of the second input.
- `output`: The descriptor of the output.
- `learningPhase`: An enumeration that specifies whether the function call context is training or inference.

## See Also

### Applying a Fused Parameters Layer

- [apply(batchSize:inputA:inputB:inputC:output:for:)](accelerate/bnns/fusedparameterslayer/apply(batchsize:inputa:inputb:inputc:output:for:).md)
- [applyBackward(batchSize:inputA:inputB:output:outputGradient:generatingInputAGradient:generatingInputBGradient:generatingParameterGradients:)](accelerate/bnns/fusedparameterslayer/applybackward(batchsize:inputa:inputb:output:outputgradient:generatinginputagradient:generatinginputbgradient:generatingparametergradients:).md)
- [applyBackward(batchSize:inputA:inputB:inputC:output:outputGradient:generatingInputAGradient:generatingInputBGradient:generatingInputCGradient:generatingParameterGradients:)](accelerate/bnns/fusedparameterslayer/applybackward(batchsize:inputa:inputb:inputc:output:outputgradient:generatinginputagradient:generatinginputbgradient:generatinginputcgradient:generatingparametergradients:).md)
