Figure 1 illustrates an exemplary convolutional neural network 100. The convolutional neural network 100 arranges its neurons in three dimensions (width, height, depth), as visualized in convolutional layer 104. Every layer of the convolutional neural network 100 transforms a 3D volume of inputs to a 3D output volume of neuron activations. In this example, the input layer 102 encodes the image, so its width and height would be the dimensions of the image, and the depth would be 3 (Red, Green, Blue channels). The convolutional layer 104 further transforms the outputs of the input layer 102, and the output layer 106 transforms the outputs of the convolutional layer 104 into one or more classifications of the image content.