Technical solutions are described to accelerate training of a multi-layer convolutional neural network. According to one aspect, a computer implemented method is described. A convolutional layer includes input maps, convolutional kernels, and output maps. The method includes a forward pass, a backward pass, and an update pass that each include convolution calculations. The described method performs the convolutional operations involved in the forward, the backward, and the update passes based on a first, a second, and a third perforation map respectively. The perforation maps are stochastically generated, and distinct from each other. The method further includes interpolating results of the selective convolution operations to obtain remaining results. The method includes iteratively repeating the forward pass, the backward pass, and the update pass until the convolutional neural network is trained. Other aspects such as a system, apparatus, and computer program product are also described.
Please help me write a proper abstract based on the patent claims. CLAIM: 1-14. (canceled) 15. A system for training a convolutional neural network, the system comprising: a memory; and a processor configured to: receive training data to train the convolutional network that comprises one or more convolutional layers, in which each convolutional layer comprises input maps, convolutional kernels, and output maps; generate the output maps using a forward pass of a convolutional layer, the forward pass comprises convolution calculations of the input maps and the convolutional kernels, wherein the convolution calculations are selectively performed based on a first stochastically generated perforation map; determine gradients using a backward pass of the convolutional layer, the gradients determined based on a training error and a cost function associated with the convolutional neural network, the backward pass comprises convolution calculations of the output maps and the convolutional kernels, and wherein the convolution calculations are selectively performed based on a second stochastically generated perforation map update the convolutional kernels using an update pass of the convolutional layer, the update pass comprises convolution calculations of the input maps and output maps, wherein the convolution calculations are selectively performed based on a third stochastically generated perforation map; and iteratively repeat the forward pass, the backward pass, and the update pass until the convolutional neural network is trained. 16. The system of claim 15, wherein the processor is further configured to perform the convolution calculations of the forward pass, the backward pass, and the update pass on mini-batches of the training data, wherein a mini-batch of the training data comprises a subset of the training data. 17. The system of claim 16, wherein: wherein the first stochastically generated perforation map is a plurality of first perforation maps, wherein the forward pass uses a respective stochastically generated perforation map from the first perforation maps for each training sample; the second stochastically generated perforation map is a plurality of second perforation maps, wherein the backward pass uses a respective stochastically generated perforation map from the second perforation maps for each training sample; and the third stochastically generated perforation map is a plurality of third perforation maps, wherein the update pass uses a respective stochastically generated perforation map from the third perforation maps for each training sample. 18. A computer product for training a convolutional neural network, the computer product comprising a computer readable storage medium that comprises computer executable instructions to: receive training data to train the convolutional network that comprises one or more convolutional layers, in which each convolutional layer comprises input maps, convolutional kernels, and output maps; generate the output maps using a forward pass of a convolutional layer, the forward pass comprises convolution calculations of the input maps and the convolutional kernels, wherein the convolution calculations are selectively performed based on a first stochastically generated perforation map; determine gradients using a backward pass of the convolutional layer, the gradients determined based on a training error and a cost function associated with the convolutional neural network, the backward pass comprises convolution calculations of the output maps and the convolutional kernels, and wherein the convolution calculations are selectively performed based on a second stochastically generated perforation map update the convolutional kernels using an update pass of the convolutional layer, the update pass comprises convolution calculations of the input maps and output maps, wherein the convolution calculations are selectively performed based on a third stochastically generated perforation map; and iteratively repeat the forward pass, the backward pass, and the update pass until the convolutional neural network is trained. 19. The computer product of claim 18, wherein: wherein the first stochastically generated perforation map is a plurality of first perforation maps, wherein the forward pass uses a respective stochastically generated perforation map from the first perforation maps for each training sample; the second stochastically generated perforation map is a plurality of second perforation maps, wherein the backward pass uses a respective stochastically generated perforation map from the second perforation maps for each training sample; and the third stochastically generated perforation map is a plurality of third perforation maps, wherein the update pass uses a respective stochastically generated perforation map from the third perforation maps for each training sample. 20. The computer product of claim 19, wherein: a perforation map from the plurality of first perforation maps identifies spatial positions for which the forward pass skips performing convolution calculations and derives results using interpolation; a perforation map from the plurality of second perforation maps identifies spatial positions for which the backward pass skips performing the convolution calculations and derives results using interpolation; and a perforation map from the plurality of third perforation maps identifies spatial positions for which the update pass skips performing the convolution calculations and derives results using interpolation.