1. A computer-implemented method for training a convolutional neural network to identify images using graphics data which can be read by a graphics processing unit (“GPU”), and one or more GPU-executable programs, the graphics data representing the state of the convolutional neural network, the method comprising: executing one or more of the GPU-executable programs on the GPU in order to perform a forward pass in the convolutional neural network; executing one or more of the GPU-executable programs on the GPU in order to perform a backward pass in the convolutional neural network; executing one or more of the GPU-executable programs on the GPU in order to modify the graphics data based on the results of the backward pass; and repeating executing one or more of the GPU-executable programs to perform forward passes, backward passes, and to modify the graphics data until the convolutional neural network is trained.