MPSCNNConvolution(3) | MetalPerformanceShaders.framework | MPSCNNConvolution(3) |
MPSCNNConvolution
#import <MPSCNNConvolution.h>
Inherits MPSCNNKernel.
Inherited by MPSCNNFullyConnected.
(nonnull instancetype) - initWithDevice:weights:
(nonnull instancetype) -
initWithDevice:convolutionDescriptor:kernelWeights:biasTerms:flags:
(nullable instancetype) - initWithCoder:device:
(nonnull instancetype) - initWithDevice:
(MPSCNNConvolutionGradientState *__nullable) -
resultStateForSourceImage:sourceStates:destinationImage:
(MPSCNNConvolutionGradientStateBatch *__nullable) -
resultStateBatchForSourceImage:sourceStates:destinationImage:
(MPSCNNConvolutionGradientState *__nullable) -
temporaryResultStateForCommandBuffer:sourceImage:sourceStates:destinationImage:
(MPSCNNConvolutionGradientStateBatch *__nullable) -
temporaryResultStateBatchForCommandBuffer:sourceImage:sourceStates:destinationImage:
(void) - reloadWeightsAndBiasesFromDataSource
(void) - reloadWeightsAndBiasesWithDataSource:
(void) - reloadWeightsAndBiasesWithCommandBuffer:state:
(MPSCNNConvolutionWeightsAndBiasesState *__nonnull) -
exportWeightsAndBiasesWithCommandBuffer:resultStateCanBeTemporary:
NSUInteger inputFeatureChannels
NSUInteger outputFeatureChannels
NSUInteger groups
id< MPSCNNConvolutionDataSource > dataSource
NSUInteger subPixelScaleFactor
const MPSCNNNeuron *__nullable neuron
const MPSCNNNeuron *__nullable MPSCNNNeuronType
neuronType
const MPSCNNNeuron *__nullable MPSCNNNeuronType float
neuronParameterA
const MPSCNNNeuron *__nullable MPSCNNNeuronType float float
neuronParameterB
const MPSCNNNeuron *__nullable MPSCNNNeuronType float float
float neuronParameterC
const MPSCNNNeuron *__nullable MPSCNNNeuronType float float
float MPSNNNeuronDescriptor *__nullable fusedNeuronDescriptor
const MPSCNNNeuron *__nullable MPSCNNNeuronType float float
float MPSNNNeuronDescriptor *__nullable NSUInteger
channelMultiplier
MPSNNConvolutionAccumulatorPrecisionOption
accumulatorPrecisionOption
This depends on Metal.framework The MPSCNNConvolution specifies a convolution. The MPSCNNConvolution convolves the input image with a set of filters, each producing one feature map in the output image.
GPU side export. Enqueue a kernel to export current weights and biases stored in MPSCNNConvoltion's internal buffers into weights and biases MTLBuffer returned in MPSCNNConvolutionWeightsAndBiasesState.
Parameters:
Returns:
NSSecureCoding compatability While the standard NSSecureCoding/NSCoding method -initWithCoder: should work, since the file can't know which device your data is allocated on, we have to guess and may guess incorrectly. To avoid that problem, use initWithCoder:device instead.
Parameters:
Returns:
Reimplemented from MPSCNNKernel.
Reimplemented in MPSCNNFullyConnected.
Standard init with default properties per filter type
Parameters:
Returns:
Reimplemented from MPSCNNKernel.
Reimplemented in MPSCNNFullyConnected.
Initializes a convolution kernel WARNING: This API is depreated and will be removed in the future. It cannot be used when training. Also serialization/unserialization wont work for MPSCNNConvolution objects created with this init. Please move onto using initWithDevice:weights:.
Parameters:
Returns:
Reimplemented in MPSCNNFullyConnected.
Initializes a convolution kernel
Parameters:
Returns:
Reimplemented in MPSCNNFullyConnected.
CPU side reload. Reload the updated weights and biases from data provider into internal weights and bias buffers. Weights and biases gradients needed for update are obtained from MPSCNNConvolutionGradientState object. Data provider passed in init call is used for this purpose.
GPU side reload. Reload the updated weights and biases from update buffer produced by application enqueued metal kernel into internal weights and biases buffer. Weights and biases gradients needed for update are obtained from MPSCNNConvolutionGradientState object's gradientForWeights and gradientForBiases metal buffer.
Parameters:
Deprecated. dataSource will be ignored.
Allocate a MPCNNConvolutionGradientSState to hold the results from a -encodeBatchToCommandBuffer... operation
Parameters:
Returns:
Reimplemented from MPSCNNKernel.
Reimplemented from MPSCNNKernel.
Allocate a temporary MPSState (subclass) to hold the results from a -encodeBatchToCommandBuffer... operation A graph may need to allocate storage up front before executing. This may be necessary to avoid using too much memory and to manage large batches. The function should allocate any MPSState objects that will be produced by an -encode call with the indicated sourceImages and sourceStates inputs. Though the states can be further adjusted in the ensuing -encode call, the states should be initialized with all important data and all MTLResource storage allocated. The data stored in the MTLResource need not be initialized, unless the ensuing -encode call expects it to be.
The MTLDevice used by the result is derived from the command buffer. The padding policy will be applied to the filter before this is called to give it the chance to configure any properties like MPSCNNKernel.offset.
CAUTION: The kernel must have all properties set to values that will ultimately be passed to the -encode call that writes to the state, before -resultStateForSourceImages:sourceStates:destinationImage: is called or behavior is undefined. Please note that -destinationImageDescriptorForSourceImages:sourceStates:destinationImage: will alter some of these properties automatically based on the padding policy. If you intend to call that to make the destination image, then you should call that before -resultStateForSourceImages:sourceStates:destinationImage:. This will ensure the properties used in the encode call and in the destination image creation match those used to configure the state.
The following order is recommended:
// Configure MPSCNNKernel properties first kernel.edgeMode = MPSImageEdgeModeZero; kernel.destinationFeatureChannelOffset = 128; // concatenation without the copy // ALERT: will change MPSCNNKernel properties MPSImageDescriptor * d = [kernel destinationImageDescriptorForSourceImage: source
sourceStates: states]; MPSTemporaryImage * dest = [MPSTemporaryImage temporaryImageWithCommandBuffer: cmdBuf
imageDescriptor: d]; // Now that all properties are configured properly, we can make the result state // and call encode. MPSState * __nullable destState = [kernel temporaryResultStateForCommandBuffer: cmdBuf
sourceImage: source
sourceStates: states]; // This form of -encode will be declared by the MPSCNNKernel subclass [kernel encodeToCommandBuffer: cmdBuf
sourceImage: source
destinationState: destState
destinationImage: dest ];
Default: returns nil
Parameters:
Returns:
Reimplemented from MPSCNNKernel.
Precision of accumulator used in convolution. See MPSNeuralNetworkTypes.h for discussion. Default is MPSNNConvolutionAccumulatorPrecisionOptionFloat.
Channel multiplier. For convolution created with MPSCNNDepthWiseConvolutionDescriptor, it is the number of output feature channels for each input channel. See MPSCNNDepthWiseConvolutionDescriptor for more details. Default is 0 which means regular CNN convolution.
dataSource with which convolution object was created
Fused neuron descritor passed in convolution descriptor for fusion with convolution. Please see class description for interpretation of c.
Number of groups input and output channels are divided into.
The number of feature channels per pixel in the input image.
MPSCNNNeuron filter to be applied as part of convolution. Can be nil in wich case no neuron activation fuction is applied.
Parameter 'a' for the neuron. Default: 1.0f Please see class description for interpretation of a.
Parameter 'b' for the neuron. Default: 1.0f Please see class description for interpretation of b.
Parameter 'c' for the neuron. Default: 1.0f Please see class description for interpretation of c.
The type of neuron to append to the convolution Please see class description for a full list. Default is MPSCNNNeuronTypeNone.
The number of feature channels per pixel in the output image.
Sub pixel scale factor which was passed in as part of MPSCNNConvolutionDescriptor when creating this MPSCNNConvolution object.
Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code.
Mon Jul 9 2018 | Version MetalPerformanceShaders-119.3 |