IP Library Granted Patent US 10,740,676
Granted Patent B2
US 10,740,676 · App. 15/595,049 · Granted Aug 11, 2020

Passive pruning of filters in a convolutional neural network

Inventors: Igor Durdanovic (Lawrenceville, NJ); Hans Peter Graf (Lincroft, NJ)
Assignee: NEC Corporation
G06N3/082G06N3/0454
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,740,676
App. No.
15/595,049
Granted
Aug 11, 2020
Kind
B2
Abstract

Methods and systems of training a neural network includes training a neural network based on training data. Weights of a layer of the neural network are multiplied by an attrition factor. A block of weights is pruned from the layer if the block of weights in the layer has a contribution to an output of the layer that is below a threshold.

Claims (28)

1. A method of training a neural network, comprising:

training a neural network based on training data;

multiplying weights of a layer of the neural network by an attrition factor; and

pruning a block of weights from the layer if the block of weights in the layer has a contribution to an output of the layer that is below a threshold.

2. The method of claim 1 , wherein the attrition factor is a number less than one.

3. The method of claim 1 , wherein the contribution of a block of weights to the output of the layer is calculated as a percentage of a sum of absolute weights of the weights in the layer made up by a sum of absolute weights of the weights in the block of weights.

4. The method of claim 1 , further comprising pruning a filter in a subsequent layer in the neural network that corresponds to the pruned block of weights.

5. The method of claim 4 , further comprising pruning a block of weights in a subsequent layer in the neural network that corresponds to the pruned filter.

6. The method of claim 1 , wherein the neural network is a convolutional neural network.

7. The method of claim 1 , wherein training, multiplying, and pruning are repeated until output of the neural network is within a threshold difference from an expected output for a validation data set.

8. The method of claim 1 , wherein training the neural network comprises a forward pass using the training data, a backward pass, and a learning pass that updates weights of the neural network.

9. The method of claim 1 , wherein pruning a block of weights comprises removing a column or row of an array of weights.

10. A method of training a neural network, comprising:

training a convolutional neural network based on training data;

multiplying weights of a layer of the neural network by a number less than one; and

pruning a block of weights from the layer, pruning a filter corresponding to the block of weights in a subsequent layer in the neural network, and pruning a block of weights that corresponds to the pruned filter in a subsequent layer in the neural network, if the block of weights in the layer has a contribution to an output of the layer that is below a threshold, wherein the contribution of a block of weights to the output of the layer is calculated as a percentage of a sum of absolute weights of the weights in the layer made up by a sum of absolute weights of the weights in the block of weights.

11. A system for training a neural network, comprising:

a neural network;

a training module configured to train the neural network based on training data; and

a pruning module configured to multiply weights of a layer of the neural network by an attrition factor and to prune a block of weights from the layer if the block of weights in the layer has a contribution to an output of the layer that is below a threshold.

12. The system of claim 11 , wherein the attrition factor is a number less than one.

13. The system of claim 11 , wherein the pruning module is further configured to calculate the contribution of a block of weights to the output of the layer as a percentage of a sum of absolute weights of the weights in the layer made up by a sum of absolute weights of the weights in the block of weights.

14. The system of claim 11 , further wherein the pruning module is further configured to prune a filter in a subsequent layer in the neural network that corresponds to the pruned block of weights.

15. The system of claim 14 , wherein the pruning module is further configured to prune a block of weights in a subsequent layer in the neural network that corresponds to the pruned filter.

16. The system of claim 11 , wherein the neural network is a convolutional neural network.

17. The system of claim 11 , wherein the training module and the pruning module are further configured to repeat training, multiplying, and pruning until output of the neural network is within a threshold difference from an expected output for a validation data set.

18. The system of claim 11 , wherein the training module is further configured to train the neural network using a forward pass using the training data, a backward pass, and a learning pass that updates weights of the neural network.

19. The system of claim 11 , wherein the pruning module is further configured to remove a column or row of an array of weights.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 052996/0574 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2017
From: DURDANOVIC, IGOR; GRAF, HANS PETER
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 042378/0906 →
Continuity (3)
Provisional Application 62338573 · May 19, 2016
Provisional Application 62338797 · May 19, 2016
Related Publication 20170337472A1 · Nov 23, 2017
Cited By (4)
US 12,393,842 US 12,591,411 US 12,591,778 US 12,675,704