Initializer

init(device:convolutionDescriptor:kernelWeights:biasTerms:flags:)

Initializes a convolution kernel.

Declaration

init(device: MTLDevice, convolutionDescriptor: MPSCNNConvolutionDescriptor, kernelWeights: UnsafePointer<Float>, biasTerms: UnsafePointer<Float>?, flags: MPSCNNConvolutionFlags)

Parameters

device

The device on which this kernel will run.

convolutionDescriptor

A pointer to a valid convolution descriptor.

kernelWeights

A pointer to a weights array.

Each entry is a float value. The number of entries is equal to inputFeatureChannels * outputFeatureChannels * kernelHeight * kernelWidth.

The layout of the filter weight is arranged so that it can be reinterpreted as a 4D tensor (array) weight[outputChannels][kernelHeight][kernelWidth][inputChannels/groups]

Weights are converted to half float precision (fp16) internally for best performance.

biasTerms

A pointer to bias terms to be applied to the convolution output.

Each entry is a float value. The number of entries is the number of output feature maps.

flags

Currently unused.

This value must be MPSCNNConvolutionFlags.none.

Return Value

A valid MPSCNNConvolution object or nil, if failure.