Convolutional neural network using a binarized convolution layer
First Claim
1. A method comprising:
- obtaining, by at least one computing device, input data that is a set of training inputs for a convolutional neural network, the convolutional neural network including multiple layers, one of the multiple layers including a convolution layer, the convolution layer including one or more filters;
training, by the at least one computing device, the convolutional neural network based on the set of training inputs;
binarizing, by the at least one computing device, the convolution layer by converting parameters of the one or more filters from floating point to binary values;
generating, by the at least one computing device, look-up table values of a look-up table for the binary values, the look-up table storing pre-computed results that are possible for the convolution layer; and
outputting, by the at least one computing device, a result of the generating.
2 Assignments
0 Petitions
Accused Products
Abstract
A convolutional neural network is trained to analyze input data in various different manners. The convolutional neural network includes multiple layers, one of which is a convolution layer that performs a convolution, for each of one or more filters in the convolution layer, of the filter over the input data. The convolution includes generation of an inner product based on the filter and the input data. Both the filter of the convolution layer and the input data are binarized, allowing the inner product to be computed using particular operations that are typically faster than multiplication of floating point values. The possible results for the convolution layer can optionally be pre-computed and stored in a look-up table. Thus, during operation of the convolutional neural network, rather than performing the convolution on the input data, the pre-computed result can be obtained from the look-up table.
-
Citations
20 Claims
-
1. A method comprising:
-
obtaining, by at least one computing device, input data that is a set of training inputs for a convolutional neural network, the convolutional neural network including multiple layers, one of the multiple layers including a convolution layer, the convolution layer including one or more filters; training, by the at least one computing device, the convolutional neural network based on the set of training inputs; binarizing, by the at least one computing device, the convolution layer by converting parameters of the one or more filters from floating point to binary values; generating, by the at least one computing device, look-up table values of a look-up table for the binary values, the look-up table storing pre-computed results that are possible for the convolution layer; and outputting, by the at least one computing device, a result of the generating. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 19)
-
-
9. A method comprising:
-
obtaining, by at least one computing device, input data that is to be analyzed by a convolutional neural network, the convolutional neural network including multiple layers, one of the multiple layers including a convolution layer, the convolution layer including one or more filters, each of the one or more filters having been binarized by being converted from floating point to binary values; binarizing, by the at least one computing device, the input data by converting the input data to a set of binary vectors; determining, by the at least one computing device, at the convolution layer, a convolution of the binarized one or more filters over the binarized input data, the determining including accessing, based on a binary vector of the set of binary vectors, a look-up table storing pre-computed results for the convolution layer, the pre-computed results used as the convolution of the binarized one or more filters over the binarized input data; and outputting, by the at least one computing device, a result of the determining. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A convolutional neural network system comprising:
-
a data access module implemented by at least one computing device to obtain input data; a convolutional neural network implemented by the at least one computing device and including multiple layers, one of the multiple layers including a convolution layer, the convolution layer including one or more filters, each of the one or more filters having been binarized by being converted from floating point to binary values as a first set of binary vectors; a binarization module implemented by the at least one computing to binarize the input data by converting the input data to binary values as a second set of binary vectors; the convolutional neural network being further configured by the at least one computing device to determine, at the convolution layer, a convolution of the binarized one or more filters over the binarized input data using bitwise logical AND and population count instructions to compute an inner product of one of the first set of binary vectors and one of the second set of binary vectors; and an output module implemented by the at least one computing device to output a result of the analyzing. - View Dependent Claims (15, 16, 17, 18, 20)
-
Specification