IP Library Granted Patent US 11,625,607
Granted Patent B2
US 11,625,607 · App. 16/287,625 · Granted Apr 11, 2023

Method of structured network pruning and sparsity speed-up

Inventors: Zuoguan Wang (Los Gatos, CA); Yilin Song (San Jose, CA); Qun Gu (San Jose, CA)
Assignee: BLACK SESAME TECHNOLOGIES INC.
G06N3/082G06F1/03
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 11,625,607
App. No.
16/287,625
Granted
Apr 11, 2023
Kind
B2
Abstract

A method of pruning a convolutional neural network, comprising at least one of determining a number of channels (N) between a network input and a network output, constructing N lookup tables, each lookup table matched to a respective channel and pruning filters in the convolutional neural network to create a shortcut between the network input and the network output based on the N lookup tables.

Claims (68)

1. A computer implemented method for pruning a convolutional neural network during training for image recognition, the method comprising:

storing the convolutional neural network in a memory device, wherein the convolutional neural network is used for recognizing an object in an image;

determining, by a processor; a number of channels (N) between an input and an output of a respective residual block of the convolutional neural network, wherein a respective channel corresponds to a filter in the convolutional neural network, wherein at least one channel is a color filter which represents intensity of a single color in the image, and wherein the filter is stored as a matrix in the memory device;

constructing at least one lookup table, wherein the lookup table indicates whether a channel is needed for a path between the input and output of the residual block of the convolutional neural network;

storing the at least one lookup table in the memory device; and

pruning filters in the convolutional neural network to create a shortcut between the input and the output based on the at least one lookup table; thereby facilitating reduction of size of the convolutional neural network and corresponding reduction of required storage space and computation cost associated with deployment of the convolutional neural network.

2. The method of pruning the convolutional neural network of claim 1 further comprising:

merging the channels between the input and the output;

categorizing N channel data flows; and

pruning filters by categorized N channel data flows.

3. The method of pruning the convolutional neural network of claim 2 , wherein the categorization of N channel data flows is one of “only use by res,” “add to res,” and “bypass;” and wherein if the channel data flow is categorized as “only use by res,” the method further comprises removing the channel data flow after calculation based on the N lookup tables.

4. The method of pruning the convolutional neural network of claim 1 further comprising:

determining a plurality of groupings of filter elements within a set of related filters;

determining a weight of each of the plurality of groupings of filter elements;

determining a mask based on the weight; and

pruning the plurality of groupings of filter elements based on the mask in each of the set of related filters.

5. The method of pruning the convolutional neural network of claim 1 further comprising:

determining a number of parallel process channels (PPC);

determining the number of channels (N) between the input and the output; and

pruning the number of channels (N) to be an integer multiple of the number of parallel process channels (PPC).

6. The method of pruning the convolutional neural network of claim 5 wherein the determining of the number of parallel process channels (PPC) is based on a hardware specific number of mac arrays which may be processed in parallel.

7. The method of pruning the convolutional neural network of claim 6 wherein the pruning of the number of channels is performed during a training process.

8. A computer implemented method for pruning a convolutional neural network during training for image recognition, the method comprising:

storing the convolutional neural network in a memory device, wherein the convolutional neural network is used for recognizing an object in an image;

determining, by a processor, a number of channels (N) between an input and an output of a respective residual block of the convolutional neural network, wherein a respective channel corresponds to a filter in the convolutional neural network, wherein at least one channel is a color filter which represents intensity of a single color in the image, and wherein the filter is stored as a matrix in the memory device;

constructing N lookup tables, each lookup table matched to a respective channel;

storing the N lookup tables in the memory device;

merging the channels between the input and the output;

categorizing N channel data flows; and

pruning filters by categorized N channel data flows; thereby facilitating reduction of size of the convolutional neural network and corresponding reduction of required storage space and computation cost associated with deployment of the convolutional neural network.

9. The method of pruning the convolutional neural network of claim 8 , wherein the categorization of the N channel data flows is one of “only use by res,” “add to res” and “bypass;” and if the channel data flow is categorized as “only use by res,” the method further comprises removing the channel data flow after calculation based on the N lookup tables.

10. The method of pruning the convolutional neural network of claim 8 further comprising pruning filters in the convolutional neural network to create a shortcut between the input and the output based on the N lookup tables.

11. The method of pruning the convolutional neural network of claim 10 further comprising:

determining a plurality of groupings of filter elements within a set of related filters;

determining a weight of each of the plurality of groupings of filter elements;

determining a mask based on the weight; and

pruning the plurality of groupings of filter elements based on the mask in each of the set of related filters.

12. The method of pruning the convolutional neural network of claim 11 further comprising:

determining a number of parallel process channels (PPC); and

pruning the number of channels (N) to be an integer multiple of the number of parallel process channels (PPC).

13. A computer implemented method for pruning a convolutional neural network during training for image recognition, the method comprising:

storing the convolutional neural network in a memory device, wherein the convolutional neural network is used for recognizing an object in an image;

determining a plurality of groupings of filter elements within a set of related filters, wherein at least one filter is a color filter which represents intensity of a single color in the image, and wherein the filter is stored as a matrix in the memory device;

determining a weight of each of the plurality of groupings of filter elements;

determining a mask based on the weight; and

pruning the plurality of groupings of filter elements based on the mask in each of the set of related filters;

determining a number of channels (N) between an input and an output of a respective residual block of the convolutional neural network, wherein a respective channel corresponds to a filter in the convolutional neural network, wherein at least one channel is a color filter which represents intensity of a single color in the image, and wherein the filter is stored as a matrix in the memory device;

constructing N lookup tables, each lookup table matched to a respective channel, and wherein a respective lookup table indicates whether a channel is needed for a path between the input and output of the residual block of the convolutional neural network;

storing the lookup tables in the memory device; and

pruning filters in the convolutional neural network to create a shortcut between the input and the output based on the N lookup tables; thereby facilitating reduction of size of the convolutional neural network and corresponding reduction of required storage space and computation cost associated with deployment of the convolutional neural network.

14. The method of pruning the convolutional neural network of claim 13 , further comprising:

merging the channels between the input and the output;

categorizing N channel data flows; and

pruning filters by categorized N channel data flows.

15. A computer implemented method for pruning a convolutional neural network during training for image recognition, the method comprising:

storing the convolutional neural network in a memory device, wherein the convolutional neural network is used for recognizing an object in an image;

determining, by a processer, a number of parallel process channels (PPC);

determining a number of channels (N) between an input and an output of the residential block of the convolutional neural network wherein a respective channel corresponds to a filter in the convolutional neural network, wherein at least one channel is a color filter which represents intensity of a single color in the image, and wherein the filter is stored as a matrix in the memory device; and

pruning the number of channels (N) to be an integer multiple of the number of parallel process channels (PPC);

wherein the determining of the number of parallel process elements (PPC) is based on a hardware specific number of parallel process channels (PPC) is based on hardware specific number of mac arrays which may be processed in parallel, thereby facilitating reduction of size of the convolutional neural network and corresponding reduction of required storage space and computation cost associated with deployment of the convolutional neural network.

16. The method of pruning the convolutional neural network of claim 15 further comprising:

determining a plurality of groupings of filter elements within a set of related filters;

determining a weight of each of the plurality of groups o filter elements;

determining a mask based on the weight; and

pruning the plurality of groupings of filter elements based on the mask in each of the set of related filters.

17. The method of pruning the convolutional neural network of claim 16 further comprising:

constructing N lookup tables, each lookup table matched to a respective channel; and

pruning filters in the convolutional neural network to create a shortcut between the network input and the network output based on the N lookup tables.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2021
From: BLACK SESAME INTERNATIONAL HOLDING LIMITED
To: BLACK SESAME TECHNOLOGIES INC.
Reel/Frame 058301/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2019
From: WANG, ZUOGUAN; SONG, YILIN; GU, QUN
To: BLACK SESAME INTERNATIONAL HOLDING LIMITED
Reel/Frame 050159/0777 →
Continuity (2)
Provisional Application 62795403 · Jan 22, 2019
Related Publication 20210097393A1 · Apr 1, 2021
Cited By (2)
US 12,554,987 US 12,682,241