Fast computation of a convolutional neural network

US10635951B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10635951-B1
Application numberUS-201916390042-A
CountryUS
Kind codeB1
Filing dateApr 22, 2019
Priority dateOct 24, 2018
Publication dateApr 28, 2020
Grant dateApr 28, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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 trai

Assignees

Inventors

Classifications

  • G06N3/063Primary

    using electronic means · CPC title

  • Learning methods · CPC title

  • Architecture, e.g. interconnection topology · CPC title

  • G06K9/66Primary

    Physics · mapped topic

  • G06V40/172Primary

    Classification, e.g. identification · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10635951B1 cover?
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 n…
Who is the assignee on this patent?
Alibaba Group Holding Ltd
What technology area does this patent fall under?
Primary CPC classification G06N3/063. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 28 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).