IP Library Granted Patent US 10,832,136
Granted Patent B2
US 10,832,136 · App. 15/590,620 · Granted Nov 10, 2020

Passive pruning of filters in a convolutional neural network

Inventors: Asim Kadav (Jersey City, NJ); Igor Durdanovic (Lawrenceville, NJ); Hans Peter Graf (Lincroft, NJ); Hao Li (Silver Spring, MD)
Assignee: NEC Corporation
G06N3/082G06F17/153G06F17/17G06K9/00771G06K9/4628G06K9/627G06K9/6228G06K9/6296G06K9/66G06N3/0454G08B13/00G08B29/186G06K2009/00738G06N3/0427G06N3/0481G06N5/045H03H2222/04
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,832,136
App. No.
15/590,620
Granted
Nov 10, 2020
Kind
B2
Abstract

Methods and systems for pruning a convolutional neural network (CNN) include calculating a sum of weights for each filter in a layer of the CNN. The filters in the layer are sorted by respective sums of weights. A set of m filters with the smallest sums of weights is filtered to decrease a computational cost of operating the CNN. The pruned CNN is retrained to repair accuracy loss that results from pruning the filters.

Claims (30)

1. A method for pruning a convolutional neural network (CNN), comprising:

calculating a sum of kernel weights of each of a plurality of filters in a layer of the CNN;

sorting the plurality of filters in the layer by respective sums of weights;

pruning m filters with the smallest sums of weights to decrease a computational cost of operating the CNN; and

retraining the pruned CNN to repair accuracy loss that results from pruning the m filters by creating a new kernel layer matrix for the layer and copying un-pruned kernel weights to the new kernel matrix.

2. The method of claim 1 , further comprising pruning feature maps corresponding to the m pruned filters.

3. The method of claim 2 , pruning kernels in a subsequent layer that correspond to the pruned feature maps.

4. The method of claim 1 , further comprising iterating the steps of pruning and retraining until a threshold CNN accuracy is reached.

5. The method of claim 1 , further comprising selecting a number of filters m based on a sensitivity of the layer to pruning.

6. The method of claim 5 , wherein a smaller m is selected for layers that have relatively high sensitivities compared to layers that have relatively low sensitivities.

7. The method of claim 5 , wherein sensitivity to pruning is measured as a degree of accuracy change.

8. A method for pruning a convolutional neural network (CNN), comprising:

calculating a sum of kernel weights of each of a plurality of filters in a layer of the CNN;

sorting the plurality of filters in the layer by respective sums of weights;

selecting a number of filters m based on a sensitivity of the layer to pruning, measured as a degree of accuracy change;

pruning m filters with the smallest sums of weights to decrease a computational cost of operating the CNN;

pruning feature maps corresponding to the m pruned filters;

pruning kernels in a subsequent layer that correspond to the pruned feature maps; and

retraining the pruned CNN to repair accuracy loss that results from pruning the m filters by creating a new kernel layer matrix for the layer and copying un-pruned kernel weights to the new kernel matrix.

9. A system for pruning a convolutional neural network (CNN), comprising:

a hardware processor; and

a memory, configured to store computer program code that, when executed by the hardware processor, is configured to execute:

a pruning module configured to calculate a sum of kernel weights of each of a plurality of filters in a layer of the CNN, to sort the plurality of filters in the layer by respective sums of weights, and to prune m filters with the smallest sums of weights to decrease a computational cost of operating the CNN; and

a training module configured to retrain the pruned CNN to repair accuracy loss that results from pruning the m filters by creating a new kernel layer matrix for the layer and copying un-pruned kernel weights to the new kernel matrix.

10. The system of claim 9 , wherein the pruning module is further configured to prune feature maps corresponding to the m pruned filters.

11. The system of claim 10 , wherein the pruning module is further configured to prune kernels in a subsequent layer that correspond to the pruned feature maps.

12. The system of claim 9 , wherein the pruning module and the training module are further configured to iterate the steps of pruning and retraining until a threshold CNN accuracy is reached.

13. The system of claim 9 , wherein the pruning module is further configured to select a number of filters m based on a sensitivity of the layer to pruning.

14. The system of claim 13 , wherein a smaller m is selected for layers that have relatively high sensitivities compared to layers that have relatively low sensitivities.

15. The system of claim 13 , wherein sensitivity to pruning is measured as a degree of accuracy change.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2020
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 053866/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2017
From: KADAV, ASIM; DURDANOVIC, IGOR; GRAF, HANS PETER; LI, HAO
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 042303/0724 →
Continuity (3)
Provisional Application 62338797 · May 19, 2016
Provisional Application 62338031 · May 18, 2016
Related Publication 20170337471A1 · Nov 23, 2017
Cited By (3)
US 12,248,877 US 12,596,913 US 12,712,895