---
title: Objects that Simplify the Creation of Neural Networks
framework: metalperformanceshaders
role: collectionGroup
role_heading: API Collection
path: metalperformanceshaders/objects-that-simplify-the-creation-of-neural-networks
---

# Objects that Simplify the Creation of Neural Networks

Simplify the creation of neural networks using networks of filter, image, and state nodes.

## Overview

Overview Graphs in Metal Performance Shaders offer a higher level graph API, intended to simplify the creation of neural networks. The graph is a network of MPSNNFilterNode, MPSNNImageNode and MPSNNStateNode objects. MPSNNImageNode represents MPSImage or MPSTemporaryImage objects MPSNNFilterNode represents MPSCNNKernel objects—each of the lower level MPSCNNKernel subclasses has an associated object that is a subclass of the MPSNNFilterNode MPSNNStateNode represents MPSState objects

## Topics

### Neural Network Graphs

- [MPSNNGraph](metalperformanceshaders/mpsnngraph.md)
- [MPSNNImageNode](metalperformanceshaders/mpsnnimagenode.md)
- [MPSHandle](metalperformanceshaders/mpshandle.md)

### Arithmetic Layer Nodes

- [MPSNNAdditionNode](metalperformanceshaders/mpsnnadditionnode.md)
- [MPSNNAdditionGradientNode](metalperformanceshaders/mpsnnadditiongradientnode.md)
- [MPSNNSubtractionNode](metalperformanceshaders/mpsnnsubtractionnode.md)
- [MPSNNSubtractionGradientNode](metalperformanceshaders/mpsnnsubtractiongradientnode.md)
- [MPSNNMultiplicationNode](metalperformanceshaders/mpsnnmultiplicationnode.md)
- [MPSNNMultiplicationGradientNode](metalperformanceshaders/mpsnnmultiplicationgradientnode.md)
- [MPSNNDivisionNode](metalperformanceshaders/mpsnndivisionnode.md)
- [MPSNNBinaryArithmeticNode](metalperformanceshaders/mpsnnbinaryarithmeticnode.md)
- [MPSNNArithmeticGradientNode](metalperformanceshaders/mpsnnarithmeticgradientnode.md)
- [MPSNNArithmeticGradientStateNode](metalperformanceshaders/mpsnnarithmeticgradientstatenode.md)

### Convolution Layer Nodes

- [MPSCNNBinaryConvolutionNode](metalperformanceshaders/mpscnnbinaryconvolutionnode.md)
- [MPSCNNConvolutionNode](metalperformanceshaders/mpscnnconvolutionnode.md)
- [MPSCNNConvolutionTransposeNode](metalperformanceshaders/mpscnnconvolutiontransposenode.md)
- [MPSCNNConvolutionGradientNode](metalperformanceshaders/mpscnnconvolutiongradientnode.md)
- [MPSCNNConvolutionGradientStateNode](metalperformanceshaders/mpscnnconvolutiongradientstatenode.md)
- [MPSCNNCrossChannelNormalizationGradientNode](metalperformanceshaders/mpscnncrosschannelnormalizationgradientnode.md)

### Pooling Layer Nodes

- [MPSCNNPoolingAverageNode](metalperformanceshaders/mpscnnpoolingaveragenode.md)
- [MPSCNNDilatedPoolingMaxNode](metalperformanceshaders/mpscnndilatedpoolingmaxnode.md)
- [MPSCNNPoolingL2NormNode](metalperformanceshaders/mpscnnpoolingl2normnode.md)
- [MPSCNNPoolingMaxNode](metalperformanceshaders/mpscnnpoolingmaxnode.md)
- [MPSCNNPoolingNode](metalperformanceshaders/mpscnnpoolingnode.md)
- [MPSCNNDilatedPoolingMaxGradientNode](metalperformanceshaders/mpscnndilatedpoolingmaxgradientnode.md)
- [MPSCNNPoolingAverageGradientNode](metalperformanceshaders/mpscnnpoolingaveragegradientnode.md)
- [MPSCNNPoolingGradientNode](metalperformanceshaders/mpscnnpoolinggradientnode.md)
- [MPSCNNPoolingL2NormGradientNode](metalperformanceshaders/mpscnnpoolingl2normgradientnode.md)
- [MPSCNNPoolingMaxGradientNode](metalperformanceshaders/mpscnnpoolingmaxgradientnode.md)

### Fully Connected Layer Nodes

- [MPSCNNBinaryFullyConnectedNode](metalperformanceshaders/mpscnnbinaryfullyconnectednode.md)
- [MPSCNNFullyConnectedNode](metalperformanceshaders/mpscnnfullyconnectednode.md)

### Neuron Layer Nodes

- [MPSCNNNeuronAbsoluteNode](metalperformanceshaders/mpscnnneuronabsolutenode.md)
- [MPSCNNNeuronELUNode](metalperformanceshaders/mpscnnneuronelunode.md)
- [MPSCNNNeuronHardSigmoidNode](metalperformanceshaders/mpscnnneuronhardsigmoidnode.md)
- [MPSCNNNeuronLinearNode](metalperformanceshaders/mpscnnneuronlinearnode.md)
- [MPSCNNNeuronPReLUNode](metalperformanceshaders/mpscnnneuronprelunode.md)
- [MPSCNNNeuronReLUNNode](metalperformanceshaders/mpscnnneuronrelunnode.md)
- [MPSCNNNeuronReLUNode](metalperformanceshaders/mpscnnneuronrelunode.md)
- [MPSCNNNeuronSigmoidNode](metalperformanceshaders/mpscnnneuronsigmoidnode.md)
- [MPSCNNNeuronSoftPlusNode](metalperformanceshaders/mpscnnneuronsoftplusnode.md)
- [MPSCNNNeuronSoftSignNode](metalperformanceshaders/mpscnnneuronsoftsignnode.md)
- [MPSCNNNeuronTanHNode](metalperformanceshaders/mpscnnneurontanhnode.md)
- [MPSCNNNeuronExponentialNode](metalperformanceshaders/mpscnnneuronexponentialnode.md)
- [MPSCNNNeuronGradientNode](metalperformanceshaders/mpscnnneurongradientnode.md)
- [MPSCNNNeuronLogarithmNode](metalperformanceshaders/mpscnnneuronlogarithmnode.md)
- [MPSCNNNeuronPowerNode](metalperformanceshaders/mpscnnneuronpowernode.md)
- [MPSCNNNeuronNode](metalperformanceshaders/mpscnnneuronnode.md)

### Softmax Layer Nodes

- [MPSCNNSoftMaxNode](metalperformanceshaders/mpscnnsoftmaxnode.md)
- [MPSCNNLogSoftMaxNode](metalperformanceshaders/mpscnnlogsoftmaxnode.md)
- [MPSCNNLogSoftMaxGradientNode](metalperformanceshaders/mpscnnlogsoftmaxgradientnode.md)
- [MPSCNNSoftMaxGradientNode](metalperformanceshaders/mpscnnsoftmaxgradientnode.md)

### Normalization Layer Nodes

- [MPSCNNCrossChannelNormalizationNode](metalperformanceshaders/mpscnncrosschannelnormalizationnode.md)
- [MPSCNNLocalContrastNormalizationNode](metalperformanceshaders/mpscnnlocalcontrastnormalizationnode.md)
- [MPSCNNSpatialNormalizationNode](metalperformanceshaders/mpscnnspatialnormalizationnode.md)
- [MPSCNNBatchNormalizationGradientNode](metalperformanceshaders/mpscnnbatchnormalizationgradientnode.md)
- [MPSCNNBatchNormalizationNode](metalperformanceshaders/mpscnnbatchnormalizationnode.md)
- [MPSCNNBatchNormalizationDataSource](metalperformanceshaders/mpscnnbatchnormalizationdatasource.md)
- [MPSCNNInstanceNormalizationGradientNode](metalperformanceshaders/mpscnninstancenormalizationgradientnode.md)
- [MPSCNNInstanceNormalizationDataSource](metalperformanceshaders/mpscnninstancenormalizationdatasource.md)
- [MPSCNNInstanceNormalizationNode](metalperformanceshaders/mpscnninstancenormalizationnode.md)
- [MPSCNNLocalContrastNormalizationGradientNode](metalperformanceshaders/mpscnnlocalcontrastnormalizationgradientnode.md)
- [MPSCNNSpatialNormalizationGradientNode](metalperformanceshaders/mpscnnspatialnormalizationgradientnode.md)
- [MPSCNNNormalizationNode](metalperformanceshaders/mpscnnnormalizationnode.md)

### Upsampling Layer Nodes

- [MPSCNNUpsamplingBilinearNode](metalperformanceshaders/mpscnnupsamplingbilinearnode.md)
- [MPSCNNUpsamplingNearestNode](metalperformanceshaders/mpscnnupsamplingnearestnode.md)
- [MPSCNNUpsamplingBilinearGradientNode](metalperformanceshaders/mpscnnupsamplingbilineargradientnode.md)
- [MPSCNNUpsamplingNearestGradientNode](metalperformanceshaders/mpscnnupsamplingnearestgradientnode.md)

### Resampling Nodes

- [MPSNNBilinearScaleNode](metalperformanceshaders/mpsnnbilinearscalenode.md)
- [MPSNNLanczosScaleNode](metalperformanceshaders/mpsnnlanczosscalenode.md)
- [MPSNNScaleNode](metalperformanceshaders/mpsnnscalenode.md)
- [MPSImageTransformProvider](metalperformanceshaders/mpsimagetransformprovider.md)

### Dropout Layer Nodes

- [MPSCNNDropoutNode](metalperformanceshaders/mpscnndropoutnode.md)
- [MPSCNNDropoutGradientNode](metalperformanceshaders/mpscnndropoutgradientnode.md)

### Kernel Concatenation Nodes

- [MPSNNConcatenationNode](metalperformanceshaders/mpsnnconcatenationnode.md)
- [MPSNNConcatenationGradientNode](metalperformanceshaders/mpsnnconcatenationgradientnode.md)

### Loss Layer Nodes

- [MPSCNNLossNode](metalperformanceshaders/mpscnnlossnode.md)
- [MPSCNNYOLOLossNode](metalperformanceshaders/mpscnnyololossnode.md)
- [MPSNNLabelsNode](metalperformanceshaders/mpsnnlabelsnode.md)

### Filter Node Base Classes

- [MPSNNFilterNode](metalperformanceshaders/mpsnnfilternode.md)
- [MPSNNGradientFilterNode](metalperformanceshaders/mpsnngradientfilternode.md)

### Protocols

- [MPSNNTrainableNode](metalperformanceshaders/mpsnntrainablenode.md)

## See Also

### Neural Networks

- [Training a Neural Network with Metal Performance Shaders](metalperformanceshaders/training-a-neural-network-with-metal-performance-shaders.md)
- [MPSImage](metalperformanceshaders/mpsimage.md)
- [MPSTemporaryImage](metalperformanceshaders/mpstemporaryimage.md)
- [Convolutional Neural Network Kernels](metalperformanceshaders/convolutional-neural-network-kernels.md)
- [Recurrent Neural Networks](metalperformanceshaders/recurrent-neural-networks.md)
