Hardware efficient weight structure for sparse deep neural networks
AssigneeThe Regents of the University of Michigan
InventorsDennis Sylvester, David Blaauw, Yu Chen, Pierre Abillama, Hun-Seok Kim
Life of this patent
Estimating the term…
Abstract
A computer-implemented method is presented for performing a computation with a neural network. The method includes: receiving a first input patch of data; applying a Walsh-Hadamard transform to the input patch to yield a transformed input patch in a transformed domain; computing an element-wise product of the transformed input patch and a kernel of the neural network; applying an inverse Walsh-Hadamard transform to the element-wise product to yield an intermediate matrix; and creating a first output patch from the intermediate matrix, where the size of the first output patch is smaller than the intermediate matrix.
Claims24
A computer-implemented method for performing a computation with a neural network, comprising:
- receiving a first input patch of data, where the first input patch is a matrix extracted from an input;
- applying a Walsh-Hadamard transform to the first input patch to yield a transformed input patch in a transformed domain;
- computing an element-wise product of the transformed input patch and a kernel of the neural network, where the kernel is trained in the transformed domain;
- applying an inverse Walsh-Hadamard transform to the element-wise product to yield an intermediate matrix;
- and
- creating a first output patch from the intermediate matrix, where the size of the first output patch is smaller than the intermediate matrix.
A computer-implemented method for performing a computation on an input with a neural network, the input having two or more channels of data comprising:
- receiving a first set of input patches, where each input patch in the first set of input patches corresponds to a different channel of the input and each input patch in the first set of input patches is extracted from the same location in the input;
- for each input patch in the first set of input patches, processing a given input patch in two or more transform domains to yield an intermediate matrix for each of the two or more transform domains;
- summing the intermediate matrices in a given transform domain together;
- and
- for each of the two or more transform domains, creating a first output patch from the summed intermediate matrix, where the size of the first output patch is smaller than the summed intermediate matrix;
- wherein processing a given input patch in a given transform domain includes applying a Walsh-Hadamard transform to a given input patch to yield a transformed input patch in the given transform domain and computing an element-wise product of the transformed input patch and a kernel of the neural network, where the kernel is trained in the given transform domain.
A computer-implemented method for performing computation in a hidden layer of a neural network, the hidden layer having a plurality of the input channels and a plurality of output channels, comprising:
- a) receiving an input patch of data from an input feature map;
- b) processing the input patch in two or more transform domains to yield a transformed input matrix;
- c) selecting a given output channel from the plurality of output channels;
- d) for each input channel in the plurality of input channels, computing an element-wise product of the transformed input matrix and a given kernel to yield an intermediate matrix, where the given kernel corresponds to the input channel and the given output channel and the given kernel is trained in the transformed domains;
- e) summing the intermediate matrices in a given domain together;
- f) creating an output patch for an output feature map from the summed intermediate matrices;
- and
- g) selecting another output channel from the plurality of output channels and repeating steps d)-f) until each output channel in the plurality of output channels has been processed.
Dependencies are inferred from the claim text.