---
title: "init(function:i_desc:o_desc:reduction:)"
framework: accelerate
role: symbol
role_heading: Initializer
path: "accelerate/bnnslayerparameterslossbase/init(function:i_desc:o_desc:reduction:)"
---

# init(function:i_desc:o_desc:reduction:)

Returns a new loss layer parameters structure from the specified parameters.

## Declaration

```swift
init(function: BNNSLossFunction, i_desc: BNNSNDArrayDescriptor, o_desc: BNNSNDArrayDescriptor, reduction: BNNSLossReductionFunction)
```

## Parameters

- `function`: The function that’s used to compute loss.
- `i_desc`: The descriptor of the input.
- `o_desc`: The descriptor of the output.
- `reduction`: The function that’s used to reduce the computed loss.

## Discussion

Discussion important: The input data type and output data type must be float. The output size must be 1, unless the reduction is BNNS.LossReduction.none.

## See Also

### Initializers

- [init()](accelerate/bnnslayerparameterslossbase/init().md)
