.TH "MPSNNConcatenationNode" 3 "Mon Jul 9 2018" "Version MetalPerformanceShaders-119.3" "MetalPerformanceShaders.framework" \" -*- nroff -*- .ad l .nh .SH NAME MPSNNConcatenationNode .SH SYNOPSIS .br .PP .PP \fC#import \fP .PP Inherits \fBMPSNNFilterNode\fP\&. .SS "Instance Methods" .in +1c .ti -1c .RI "(nonnull instancetype) \- \fBinitWithSources:\fP" .br .ti -1c .RI "(\fBMPSNNGradientFilterNode\fP *__nonnull) \- \fBgradientFilterWithSources:\fP" .br .in -1c .SS "Class Methods" .in +1c .ti -1c .RI "(nonnull instancetype) + \fBnodeWithSources:\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Node representing a the concatenation (in the feature channel dimension) of the results from one or more kernels .SH "Method Documentation" .PP .SS "\- (\fBMPSNNGradientFilterNode\fP*__nonnull) gradientFilterWithSources: (NSArray< \fBMPSNNImageNode\fP * > *__nonnull) gradientImages" Concatenation returns multiple gradient filters\&. Use -gradientFiltersWithSources: instead\&. .PP Reimplemented from \fBMPSNNFilterNode\fP\&. .SS "\- (nonnull instancetype) initWithSources: (NSArray< \fBMPSNNImageNode\fP * > *__nonnull) sourceNodes" Init a node that concatenates feature channels from multiple images In some neural network designs, it is necessary to append feature channels from one neural network filter to the results of another\&. If we have three image nodes with M, N and O feature channels in them, passed to -initWithSources: as @[imageM, imageN, imageO], then feature channels [0,M-1] will be drawn from image M, feature channels [M, M+N-1] will be drawn from image N and feature channels [M+N, M+N+O-1] will be drawn from image O\&. .PP As all images are padded out to a multiple of four feature channels, M, N and O here are also multiples of four, even when the MPSImages are not\&. That is, if the image is 23 feature channels and one channel of padding, it takes up 24 feature channels worth of space in the concatenated result\&. .PP Performance Note: Generally, concatenation is free as long as all of the sourceNodes are produced by filters in the same \fBMPSNNGraph\fP\&. Most MPSCNNKernels have the ability to write their results at a feature channel offset within a target \fBMPSImage\fP\&. However, if the \fBMPSNNImageNode\fP source nodes come from images external to the \fBMPSNNGraph\fP, then we have to do a copy operation to assemble the concatenated node\&. As a result, when deciding where to break a large logical graph into multiple smaller MPSNNGraphs, it is better for concatenations to appear at the ends of subgraphs when possible rather than at the start, to the extent that all the images used in the concatenation are produced by that subgraph\&. .PP \fBParameters:\fP .RS 4 \fIsourceNodes\fP The \fBMPSNNImageNode\fP representing the source MPSImages for the filter .RE .PP \fBReturns:\fP .RS 4 \fBA\fP new MPSNNFilter node that concatenates its inputs\&. .RE .PP .SS "+ (nonnull instancetype) nodeWithSources: (NSArray< \fBMPSNNImageNode\fP * > *__nonnull) sourceNodes" Init a autoreleased node that concatenates feature channels from multiple images In some neural network designs, it is necessary to append feature channels from one neural network filter to the results of another\&. If we have three image nodes with M, N and O feature channels in them, passed to -initWithSources: as @[imageM, imageN, imageO], then feature channels [0,M-1] will be drawn from image M, feature channels [M, M+N-1] will be drawn from image N and feature channels [M+N, M+N+O-1] will be drawn from image O\&. .PP As all images are padded out to a multiple of four feature channels, M, N and O here are also multiples of four, even when the MPSImages are not\&. That is, if the image is 23 feature channels and one channel of padding, it takes up 24 feature channels worth of space in the concatenated result\&. .PP Performance Note: Generally, concatenation is free as long as all of the sourceNodes are produced by filters in the same \fBMPSNNGraph\fP\&. Most MPSCNNKernels have the ability to write their results at a feature channel offset within a target \fBMPSImage\fP\&. However, if the \fBMPSNNImageNode\fP source nodes come from images external to the \fBMPSNNGraph\fP, then we have to do a copy operation to assemble the concatenated node\&. As a result, when deciding where to break a large logical graph into multiple smaller MPSNNGraphs, it is better for concatenations to appear at the ends of subgraphs when possible rather than at the start, to the extent that all the images used in the concatenation are produced by that subgraph\&. .PP \fBParameters:\fP .RS 4 \fIsourceNodes\fP The \fBMPSNNImageNode\fP representing the source MPSImages for the filter .RE .PP \fBReturns:\fP .RS 4 \fBA\fP new MPSNNFilter node that concatenates its inputs\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for MetalPerformanceShaders\&.framework from the source code\&.