A computer-implemented method, performed by a convolutional neural network system configured to generate a classification output based on inputs that are images or features that have been extracted from images, for more efficiently performing a computation of a convolutional neural network layer, included in the convolutional neural network system, that is configured to receive an X by Y by Z input tensor and process the received input tensor using one or more convolutional neural network layer weight matrices to generate an U by V by W output tensor, the method comprising: receiving the X by Y by Z input tensor that includes XY inputs, each of depth being Z, wherein X and Y represent spatial extent or index and Z represents depth extent or index, transforming the X by Y by Z input tensor into a X' by Y' by Z' input tensor by grouping two or more of the XY inputs into X'Y' inputs while trading the spatial extent or index for the depth extent or index, wherein X' is smaller than or equal to X, Y' is smaller than or equal to Y, and Z' is larger than Z; obtaining one or more modified convolutional neural network layer weight matrices, wherein the modified weight matrices are adapted to operate on the X' by Y' by Z' input tensor to generate a U' by V' by W' output tensor, wherein the U' by V' by W' output tensor includes U' V' outputs, each of depth being W', U' and V' represent spatial extent or index and W' represents depth extent or index; processing the X' by Y' by Z' input tensor using the modified weight matrices to generate the U' by V' by W' output tensor; and transforming the U' by V' by W' output tensor into a U by V by W output tensor by grouping two or more of the U' V' outputs into UV outputs while trading the spatial extent or index for the depth extent or index, wherein U' is smaller than or equal to U, V' is smaller than or equal to V, and W' is larger than W, wherein the one or more convolutional neural network layer weight matrices comprise a number of kernel elements that operate over the XY inputs, and the obtaining step comprises: generating the one or more modified convolutional neural network layer weight matrices by reducing the number of kernel elements to generate a reduced number of kernel elements that operate over the X'Y' inputs. receiving the X by Y by Z input tensor that includes XY inputs, each of depth being Z, wherein X and Y represent spatial extent or index and Z represents depth extent or index, transforming the X by Y by Z input tensor into a X' by Y' by Z' input tensor by grouping two or more of the XY inputs into X'Y' inputs while trading the spatial extent or index for the depth extent or index, wherein X' is smaller than or equal to X, Y' is smaller than or equal to Y, and Z' is larger than Z; obtaining one or more modified convolutional neural network layer weight matrices, wherein the modified weight matrices are adapted to operate on the X' by Y' by Z' input tensor to generate a U' by V' by W' output tensor, wherein the U' by V' by W' output tensor includes U' V' outputs, each of depth being W', U' and V' represent spatial extent or index and W' represents depth extent or index; processing the X' by Y' by Z' input tensor using the modified weight matrices to generate the U' by V' by W' output tensor; and transforming the U' by V' by W' output tensor into a U by V by W output tensor by grouping two or more of the U' V' outputs into UV outputs while trading the spatial extent or index for the depth extent or index, wherein U' is smaller than or equal to U, V' is smaller than or equal to V, and W' is larger than W, wherein the one or more convolutional neural network layer weight matrices comprise a number of kernel elements that operate over the XY inputs, and the obtaining step comprises: generating the one or more modified convolutional neural network layer weight matrices by reducing the number of kernel elements to generate a reduced number of kernel elements that operate over the X'Y' inputs.