IP Library Granted Patent US 10,635,951
Granted Patent B1
US 10,635,951 · App. 16/390,042 · Granted Apr 28, 2020

Fast computation of a convolutional neural network

Inventors: Yongchao Liu (Hangzhou, CN); Qiyin Huang (Hangzhou, CN); Guozhen Pan (Hangzhou, CN); Sizhong Li (Hangzhou, CN); Jianguo Xu (Hangzhou, CN); Haitao Zhang (Hangzhou, CN); Lin Wang (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06K9/66G06N3/04G06N3/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,635,951
App. No.
16/390,042
Granted
Apr 28, 2020
Kind
B1
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.

Claims (44)

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.

2. The computer-implemented method of claim 1 , further comprising saving the first reusable factor for the first convolutional layer.

3. The computer-implemented method of claim 1 , wherein 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 comprises computing the first output of the first convolutional layer according to a Winograd minimal filtering algorithm with the first reusable factor and the first input data.

4. The computer-implemented method of claim 1 , wherein the first input data to the trained convolutional neural network comprises one or more images.

5. The computer-implemented method of claim 1 , further comprising:

determining, by the data processing apparatus, output data of the trained convolutional neural network based on the second output of the second convolutional layer.

6. The computer-implemented method of claim 1 , further comprising outputting output data of the trained convolutional neural network via a user interface.

7. 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 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 layers 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 layer 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 layer using the Winograd convolutional operator based on the second reusable factor and the second input data.

8. The non-transitory, computer-readable medium of claim 7 , the operations further comprising saving the first reusable factor for the first convolutional layer.

9. The non-transitory, computer-readable medium of claim 7 , wherein 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 comprises computing the first output of the first convolutional layer according to a Winograd minimal filtering algorithm with the first reusable factor and the first input data.

10. The non-transitory, computer-readable medium of claim 7 , wherein

the first input data to the trained convolutional neural network comprises one or more images.

11. The non-transitory, computer-readable medium of claim 7 , the operations further comprising:

determining output data of the trained convolutional neural network based on the second output of the second convolutional layer.

12. The non-transitory, computer-readable medium of claim 7 , the operations further comprising outputting output data of the trained convolutional neural network via a user interface.

13. 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 layer 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 layer using the Winograd convolutional operator based on the second reusable factor and the second input data.

14. The computer-implemented system of claim 13 , the operations further comprising saving the first reusable factor for the first convolutional layer.

15. The computer-implemented system of claim 13 , wherein computing a first output of the first convolutional layers using a Winograd convolutional operator based on the first reusable factor and the first input data comprises computing the first output of the first convolutional layer according to a Winograd minimal filtering algorithm with the first reusable factor and the first input data.

16. The computer-implemented system of claim 13 , the operations further comprising:

determining output data of the trained convolutional neural network based on the second output of the second convolutional layer.

17. The computer-implemented system of claim 13 , further comprising a user interface; and the operations further comprising outputting output data of the trained convolutional neural network via the user interface.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
To: ADVANCED NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053754/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD.
Reel/Frame 053743/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: LIU, YONGCHAO; HUANG, QIYIN; PAN, GUOZHEN; LI, SIZHONG; XU, JIANGUO; ZHANG, HAITAO; WANG, LIN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 049929/0390 →
Cited By (1)
US 12,608,596