Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mpsoffset(3) [mojave man page]

MPSOffset(3)						 MetalPerformanceShaders.framework					      MPSOffset(3)

NAME
MPSOffset SYNOPSIS
#include <MPSCoreTypes.h> Public Attributes NSInteger x NSInteger y NSInteger z Detailed Description A signed coordinate with x, y and z components Member Data Documentation NSInteger MPSOffset::x The horizontal component of the offset. Units: pixels NSInteger MPSOffset::y The vertical component of the offset. Units: pixels NSInteger MPSOffset::z The depth component of the offset. Units: pixels Author Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code. Version MetalPerformanceShaders-100 Thu Feb 8 2018 MPSOffset(3)

Check Out this Related Man Page

MPSCNNConvolutionTranspose(3)				 MetalPerformanceShaders.framework			     MPSCNNConvolutionTranspose(3)

NAME
MPSCNNConvolutionTranspose SYNOPSIS
#import <MPSCNNConvolution.h> Inherits MPSCNNKernel. Instance Methods (nonnull instancetype) - initWithDevice:weights: (nonnull instancetype) - initWithDevice: (nullable instancetype) - initWithCoder:device: (MPSImage *__nonnull) - encodeToCommandBuffer:sourceImage:convolutionGradientState: (MPSImageBatch *__nonnull) - encodeBatchToCommandBuffer:sourceImages:convolutionGradientStates: (void) - encodeToCommandBuffer:sourceImage:convolutionGradientState:destinationImage: (void) - encodeBatchToCommandBuffer:sourceImages:convolutionGradientStates:destinationImages: Properties NSUInteger inputFeatureChannels NSUInteger outputFeatureChannels NSInteger kernelOffsetX NSInteger kernelOffsetY NSUInteger groups MPSNNConvolutionAccumulatorPrecisionOption accumulatorPrecisionOption Additional Inherited Members Detailed Description This depends on Metal.framework The MPSCNNConvolutionTranspose specifies a transposed convolution. The MPSCNNConvolutionTranspose convolves the input image with a set of filters, each producing one feature map in the output image. Some third-party frameworks may rotate the weights spatially by 180 degrees for Convolution Transpose. MPS uses the weights specified by the developer as-is and does not perform any rotation. The developer may need to rotate the weights appropriately in case this rotation is needed before the convolution transpose is applied. When the stride in any dimension is greater than 1, the convolution transpose puts (stride - 1) zeroes in-between the source image pixels to create an expanded image. Then a convolution is done over the expanded image to generate the output of the convolution transpose. Intermediate image size = (srcSize - 1) * Stride + 1 Examples: So in case of sride == 2 (this behaves same in both dimensions) Source image: _______________ | | | | | | 1 | 2 | 3 | 4 | | | | | | --------------- Intermediate Image: ___________________________ | | | | | | | | | 1 | 0 | 2 | 0 | 3 | 0 | 4 | | | | | | | | | --------------------------- NOTE on Offset: There are 2 types of offsets defined: 1) The Offset defined in MPSCNNKernel from which MPSCNNConvolutionTranspose inherits. This offset is applied to from where the kernel will be applied on the source. 2) The kernelOffsetX and kernelOffsetY which is the offset applied to the kernel when it is finally applied on the intermediate image. So totalOffset = Offset * stride + kernelOffset The offset defined by user refers to the coordinate frame of the expanded image (we are showing only 1 dimension X it can be extended to Y dimension as well) : X indicates where the convolution transpose begins: Intermediate Image: Offset = 0, kernelOffset = 0 ___________________________ | | | | | | | | | 1 | 0 | 2 | 0 | 3 | 0 | 4 | | X | | | | | | | --------------------------- X indicates where the convolution transpose begins: Intermediate Image: Offset = 0, kernelOffset = 1 ___________________________ | | | | | | | | | 1 | 0 | 2 | 0 | 3 | 0 | 4 | | | X | | | | | | --------------------------- X indicates where the convolution transpose begins: Intermediate Image: Offset = 0, kernelOffset = -1 ___________________________ | | | | | | | | X | 1 | 0 | 2 | 0 | 3 | 0 | 4 | | | | | | | | | --------------------------- So if the user wanted to apply an offset of 2 on the source image of convolution transpose: Source image: _______________ | | | | | | 1 | 2 | 3 | 4 | | | | X | | --------------- offset = 2, kernelOffset = 0 Intermediate Image: ___________________________ | | | | | | | | | 1 | 0 | 2 | 0 | 3 | 0 | 4 | | | | | | X | | | --------------------------- Method Documentation - (MPSImageBatch * __nonnull) encodeBatchToCommandBuffer: (nonnull id< MTLCommandBuffer >) commandBuffer(MPSImageBatch *__nonnull) sourceImage(MPSCNNConvolutionGradientStateBatch *__nullable) convolutionGradientState - (void) encodeBatchToCommandBuffer: (nonnull id< MTLCommandBuffer >) commandBuffer(MPSImageBatch *__nonnull) sourceImage(MPSCNNConvolutionGradientStateBatch *__nullable) convolutionGradientState(MPSImageBatch *__nonnull) destinationImage - (MPSImage * __nonnull) encodeToCommandBuffer: (nonnull id< MTLCommandBuffer >) commandBuffer(MPSImage *__nonnull) sourceImage(MPSCNNConvolutionGradientState *__nullable) convolutionGradientState Encode a MPSCNNKernel into a command Buffer. Create a texture to hold the result and return it. In the first iteration on this method, encodeToCommandBuffer:sourceImage:destinationImage: some work was left for the developer to do in the form of correctly setting the offset property and sizing the result buffer. With the introduction of the padding policy (see padding property) the filter can do this work itself. If you would like to have some input into what sort of MPSImage (e.g. temporary vs. regular) or what size it is or where it is allocated, you may set the destinationImageAllocator to allocate the image yourself. This method uses the MPSNNPadding padding property to figure out how to size the result image and to set the offset property. See discussion in MPSNeuralNetworkTypes.h. Note: the regular encodeToCommandBuffer:sourceImage: method may be used when no state is needed, such as when the convolution transpose operation is not balanced by a matching convolution object upstream. Parameters: commandBuffer The command buffer sourceImage A MPSImage to use as the source images for the filter. convolutionGradientState A valid MPSCNNConvolutionGradientState from the MPSCNNConvoluton counterpart to this MPSCNNConvolutionTranspose. If there is no forward convolution counterpart, pass NULL here. This state affects the sizing the result. Returns: A MPSImage or MPSTemporaryImage allocated per the destinationImageAllocator containing the output of the graph. The offset property will be adjusted to reflect the offset used during the encode. The returned image will be automatically released when the command buffer completes. If you want to keep it around for longer, retain the image. (ARC will do this for you if you use it later.) - (void) encodeToCommandBuffer: (nonnull id< MTLCommandBuffer >) commandBuffer(MPSImage *__nonnull) sourceImage(MPSCNNConvolutionGradientState *__nullable) convolutionGradientState(MPSImage *__nonnull) destinationImage - (nullable instancetype) initWithCoder: (NSCoder *__nonnull) aDecoder(nonnull id< MTLDevice >) device <NSSecureCoding> support Reimplemented from MPSCNNKernel. - (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device Standard init with default properties per filter type Parameters: device The device that the filter will be used on. May not be NULL. Returns: A pointer to the newly initialized object. This will fail, returning nil if the device is not supported. Devices must be MTLFeatureSet_iOS_GPUFamily2_v1 or later. Reimplemented from MPSCNNKernel. - (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device(nonnull id< MPSCNNConvolutionDataSource >) weights Initializes a convolution transpose kernel Parameters: device The MTLDevice on which this MPSCNNConvolutionTranspose filter will be used weights A pointer to a object that conforms to the MPSCNNConvolutionDataSource protocol. The MPSCNNConvolutionDataSource protocol declares the methods that an instance of MPSCNNConvolutionTranspose uses to obtain the weights and bias terms for the CNN convolutionTranspose filter. Currently we support only Float32 weights. Returns: A valid MPSCNNConvolutionTranspose object. Property Documentation - (MPSNNConvolutionAccumulatorPrecisionOption) accumulatorPrecisionOption [read], [write], [nonatomic], [assign] Precision of accumulator used in convolution. See MPSNeuralNetworkTypes.h for discussion. Default is MPSNNConvolutionAccumulatorPrecisionOptionHalf. - groups [read], [nonatomic], [assign] Number of groups input and output channels are divided into. - inputFeatureChannels [read], [nonatomic], [assign] The number of feature channels per pixel in the input image. - kernelOffsetX [read], [write], [nonatomic], [assign] Offset in X from which the kernel starts sliding - kernelOffsetY [read], [write], [nonatomic], [assign] Offset in Y from which the kernel starts sliding - outputFeatureChannels [read], [nonatomic], [assign] The number of feature channels per pixel in the output image. Author Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code. Version MetalPerformanceShaders-100 Thu Feb 8 2018 MPSCNNConvolutionTranspose(3)
Man Page