FAST COMPUTATION OF A CONVOLUTIONAL NEURAL NETWORK
First Claim
1. A computer-implemented method, comprisingobtaining, by a data processing apparatus, a trained convolutional neural network comprising at least a first convolutional layer and a second convolutional layer, each of the at least the first convolutional layer and the second convolutional layer comprising a corresponding plurality of filters with known filter parameters;
- pre-computing, by the data processing apparatus, a first reusable factor for the first convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network;
pre-computing, by the data processing apparatus, a second reusable factor for the second convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network;
identifying, by the data processing apparatus, a first input data to the first convolutional layer of the trained convolutional neural network;
computing, by the data processing apparatus, a first output of the first convolutional layer using a Winograd convolutional operator based on the first reusable factor and the first input data;
using, by the data processing apparatus, the first output as a second input data to the second convolutional layer of the trained convolutional neural network; and
computing, by the data processing apparatus, a second output of the second convolutional layer using the Winograd convolutional operator based on the second reusable factor and the second input data.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented method includes obtaining a trained convolutional neural network comprising one or more convolutional layers, each of the one or more convolutional layers comprising a plurality of filters with known filter parameters; pre-computing a reusable factor for each of the one or more convolutional layers based on the known filter parameters of the trained convolutional neural network; receiving input data to the trained convolutional neural network; computing an output of the each of the one or more convolutional layers using a Winograd convolutional operator based on the pre-computed reusable factor and the input data; and determining output data of the trained convolutional network based on the output of the each of the one or more convolutional layers.
-
Citations
20 Claims
-
1. A computer-implemented method, comprising
obtaining, by a data processing apparatus, a trained convolutional neural network comprising at least a first convolutional layer and a second convolutional layer, each of the at least the first convolutional layer and the second convolutional layer comprising a corresponding plurality of filters with known filter parameters; -
pre-computing, by the data processing apparatus, a first reusable factor for the first convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network; pre-computing, by the data processing apparatus, a second reusable factor for the second convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network; identifying, by the data processing apparatus, a first input data to the first convolutional layer of the trained convolutional neural network; computing, by the data processing apparatus, a first output of the first convolutional layer using a Winograd convolutional operator based on the first reusable factor and the first input data; using, by the data processing apparatus, the first output as a second input data to the second convolutional layer of the trained convolutional neural network; and computing, by the data processing apparatus, a second output of the second convolutional layer using the Winograd convolutional operator based on the second reusable factor and the second input data. - View Dependent Claims (3, 4, 5, 6, 7)
-
-
2. (canceled)
-
8. A non-transitory, computer-readable medium storing one or more instructions executable by a computer system to perform operations comprising:
-
obtaining a trained convolutional neural network comprising at least a first convolutional laver and a second convolutional layer, each of the at least the first convolutional laver and the second convolutional layer comprising a corresponding plurality of filters with known filter parameters; pre-computing a first reusable factor for the first convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network; pre-computing a second reusable factor for the second convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network; identifying a first input data to the first convolutional laver of the trained convolutional neural network; computing a first output of the first convolutional layer using a Winograd convolutional operator based on the first reusable factor and the first input data; using the first output as a second input data to the second convolutional layer of the trained convolutional neural network; and computing a second output of the second convolutional laver using the Winograd convolutional operator based on the second reusable factor and the second input data. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
9. (canceled)
-
15. A computer-implemented system, comprising:
-
one or more computers; and one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing instructions, that when executed by the one or more computers, perform operations comprising; obtaining a trained convolutional neural network comprising at least a first convolutional layer and a second convolutional layer, each of the at least the first convolutional layer and the second convolutional layer comprising a corresponding plurality of filters with known filter parameters. pre-computing a first reusable factor for the first convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network; pre-computing a second reusable factor for the second convolutional layer based on the known filter parameters regardless of any input data to the trained convolutional neural network; identifying a first input data to the first convolutional laver of the trained convolutional neural network; computing a first output of the first convolutional layer using a Winograd convolutional operator based on the first reusable factor and the first input data; using the first output as a second input data to the second convolutional layer of the trained convolutional neural network; and computing a second output of the second convolutional laver using the Winograd convolutional operator based on the second reusable factor and the second input data. - View Dependent Claims (17, 18, 19, 20)
-
-
16. (canceled)
Specification