One Logo Pool Ball
Accelerate · IOS API REFERENCE

BNNS.BinaryArithmeticLayer

class · iOS 14.0+ · SDK 27.1

class BinaryArithmeticLayer

A binary arithmetic layer. Use a `BinaryArithmeticLayer` to perform arithmetic functions that accept two operands. For example, the following code calculates the element-wise products of the values in tensor `a` multiplied by the corresponding values in tensor `b`: let a = BNNSNDArrayDescriptor.allocate(initializingFrom: [1, 2, 3, 4] as [Float], shape: [4]) let b = BNNSNDArrayDescriptor.allocate(initializingFrom: [1, 10, 100, 1000] as [Float], shape: [4]) let out = BNNSNDArrayDescriptor.allocateUninitialized(scalarType: Float.self, shape: [4]) let layer = BNNS.BinaryArithmeticLayer(inputA: a, inputADescriptorType: .sample, inputB: b, inputBDescriptorType: .sample, output: out, outputDescriptorType: .sample, function: .multiply) try? layer?.apply(batchSize: 1, inputA: a, inputB: b, output: out) On return, the output tensor contains the the values `[1, 20, 300, 4000]`.

Members (3)

method · iOS 14.0+

applyBackward

TypeScript
applyBackward(batchSize: number, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor, outputGradient: BNNSNDArrayDescriptor, inputAGradient: BNNSNDArrayDescriptor, inputBGradient: BNNSNDArrayDescriptor): void
Swift declaration
func applyBackward(batchSize: Int, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor, outputGradient: BNNSNDArrayDescriptor, generatingInputAGradient inputAGradient: BNNSNDArrayDescriptor, generatingInputBGradient inputBGradient: BNNSNDArrayDescriptor) throws

Applies the layer backward to generate gradients. - Parameter batchSize: The number of input-output pairs to process. - Parameter inputA: The first input descriptor. - Parameter inputB: The second input descriptor. - Parameter output: The output descriptor. - Parameter outputGradient: The output gradient descriptor. - Parameter inputAGradient: The first input gradient descriptor. - Parameter inputBGradient: The second input gradient descriptor.

method · iOS 14.0+

apply

TypeScript
apply(batchSize: number, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor): void
Swift declaration
func apply(batchSize: Int, inputA: BNNSNDArrayDescriptor, inputB: BNNSNDArrayDescriptor, output: BNNSNDArrayDescriptor) throws

Applies the layer, writing the result to the output descriptor. - Parameter batchSize: The number of input-output pairs to process. - Parameter inputA: The first input descriptor. - Parameter inputB: The second input descriptor. - Parameter output: The output descriptor.

init · iOS 14.0+

init

TypeScript
static init(inputA: BNNSNDArrayDescriptor, inputADescriptorType: BNNS_DescriptorType, inputB: BNNSNDArrayDescriptor, inputBDescriptorType: BNNS_DescriptorType, output: BNNSNDArrayDescriptor, outputDescriptorType: BNNS_DescriptorType, function_: BNNS_ArithmeticBinaryFunction, activation?: BNNS_ActivationFunction, filterParameters?: (BNNSFilterParameters) | null): (BNNS_BinaryArithmeticLayer) | null
Swift declaration
convenience init?(inputA: BNNSNDArrayDescriptor, inputADescriptorType: BNNS.DescriptorType, inputB: BNNSNDArrayDescriptor, inputBDescriptorType: BNNS.DescriptorType, output: BNNSNDArrayDescriptor, outputDescriptorType: BNNS.DescriptorType, function: BNNS.ArithmeticBinaryFunction, activation: BNNS.ActivationFunction = .identity, filterParameters: BNNSFilterParameters? = nil)

Creates a new binary arithmetic layer. - Parameter inputA: The first input descriptor. - Parameter inputADescriptorType: The descriptor type of the first input. - Parameter inputB: The second input descriptor. - Parameter inputBDescriptorType: The descriptor type of the second input. - Parameter output: The output descriptor. - Parameter outputDescriptorType: The descriptor type of the output. - Parameter function: The arithmetic operation. - Parameter activation: The activation function to apply to the result. - Parameter filterParameters: Runtime filter parameters. - Returns: A new binary arithmetic layer.

Skipped declarations

No declarations were skipped in this snapshot.

All Accelerate types →