Convolutional neural networks (CNNs) may be used in machine learning implementations in applications such as image and video recognition, or natural language processing. A CNN may typically comprise a number of layers of computational constructs called “neurons.” Each neuron may receive as input a portion of the receptive field (e.g. the output of the previous layer), and output a value for a selected feature. A CNN may be trained based on a set of training data which provides inputs and correct outputs.