IP Library Granted Patent US 11,651,192
Granted Patent B2
US 11,651,192 · App. 16/788,261 · Granted May 16, 2023

Compressed convolutional neural network models

Inventors: James C. Gabriel (Seattle, WA); Mohammad Rastegari (Bothell, WA); Hessam Bagherinezhad (Seattle, WA); Saman Naderiparizi (Seattle, WA); Anish Prabhu (Seattle, WA); Sophie Lebrecht (Seattle, WA); Jonathan Gelsey (Mercer Island, WA); Sayyed Karen Khatamifard (Seattle, WA); Andrew L. Chronister (Seattle, WA); David Bakin (Seattle, WA); Andrew Z. Luo (Redmond, WA)
Assignee: Apple Inc.
G06N3/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 11,651,192
App. No.
16/788,261
Granted
May 16, 2023
Kind
B2
Abstract

Systems and processes for training and compressing a convolutional neural network model include the use of quantization and layer fusion. Quantized training data is passed through a convolutional layer of a neural network model to generate convolutional results during a first iteration of training the neural network model. The convolutional results are passed through a batch normalization layer of the neural network model to update normalization parameters of the batch normalization layer. The convolutional layer is fused with the batch normalization layer to generate a first fused layer and the fused parameters of the fused layer are quantized. The quantized training data is passed through the fused layer using the quantized fused parameters to generate output data, which may be quantized for a subsequent layer in the training iteration.

Claims (58)

1. A method comprising:

passing quantized training data through a first convolutional layer of a neural network model to generate first convolutional results during a first iteration of training the neural network model;

passing the first convolutional results through a first batch normalization layer of the neural network model to update first normalization parameters of the first batch normalization layer;

fusing the first convolutional layer with the first batch normalization layer to generate a first fused layer;

quantizing first fused parameters of the first fused layer;

passing the quantized training data through the first fused layer using the quantized first fused parameters to generate first output data;

quantizing the first output data; and

providing the neural network model to an electronic device as a trained neural network model comprising the first convolutional layer fused with the first batch normalization layer and the quantized first fused parameters for execution by the electronic device.

2. The method of claim 1 , further comprising:

passing the quantized first output data through a second convolutional layer of the neural network model to generate second convolutional results during the first iteration of training the neural network model;

passing the second convolutional results through a second batch normalization layer of the neural network model to update second normalization parameters of the second batch normalization layer;

fusing the second convolutional layer with the second batch normalization layer to generate a second fused layer;

quantizing second fused parameters of the second fused layer;

passing the quantized first output data through the second fused layer using the quantized second fused parameters to generate second output data; and

quantizing the second output data.

3. The method of claim 2 , wherein the quantized training data is quantized to a first fixed point number format having a first bit size, and wherein the quantized first output data is quantized to a second fixed point number format having a second bit size.

4. The method of claim 3 , wherein the first bit size and the second bit size are equal.

5. The method of claim 3 , wherein the quantized first fused parameters are quantized to a third fixed point number format having a third bit size.

6. The method of claim 5 , wherein the first bit size and the third bit size are different.

7. The method of claim 5 , wherein the quantized second fused parameters are quantized to a fourth fixed point number having a fourth bit size.

8. The method of claim 7 , wherein the third bit size and the fourth bit size are different.

9. The method of claim 1 ,

wherein the trained neural network model is provided to a computing platform of the electronic device,

wherein the computing platform comprises a field-programmable gate array or an application-specific integrated circuit.

10. The method of claim 9 , wherein the electronic device comprises a power source configured to supply power to the electronic device, a sensor configured to generate input data, and a wireless communications module configured to communicate classification data generated by the computing platform and to receive configuration information for the computing platform.

11. The method of claim 10 , wherein the electronic device is assigned an identifier and is configured to communicate with a base station via the wireless communications module using the identifier, and wherein the base station is in communication with one or more other electronic devices.

12. A system comprising:

a processor;

a memory device containing instructions, which when executed by the processor cause the processor to:

pass training data quantized to a first fixed point number format having a first bit size through a first convolutional layer of a neural network model to generate first convolutional results during a first iteration of training the neural network model;

pass the first convolutional results through a first batch normalization layer of the neural network model to update first normalization parameters of the first batch normalization layer;

fuse the first convolutional layer with the first batch normalization layer to generate a first fused layer;

quantize first fused parameters of the first fused layer to a second fixed point number format having a second bit size;

pass the quantized training data through the first fused layer using the quantized first fused parameters to generate first output data;

quantize the first output data to a third fixed point number format having a third bit size; and

provide the neural network model to an electronic device as a trained neural network model comprising the first convolutional layer fused with the first batch normalization layer and the quantized first fused parameters for execution by the electronic device.

13. The system of claim 12 , wherein the memory device contains instructions, which when executed by the process further cause the processor to:

pass the quantized first output data through a second convolutional layer of the neural network model to generate second convolutional results during the first iteration of training the neural network model;

pass the second convolutional results through a second batch normalization layer of the neural network model to update second normalization parameters of the second batch normalization layer;

fuse the second convolutional layer with the second batch normalization layer to generate a second fused layer;

quantize second fused parameters of the second fused layer to a fourth fixed point number format having a fourth bit size;

pass the quantized first output data through the second fused layer using the quantized second fused parameters to generate second output data; and

quantize the second output data to a fifth fixed point number format having a fifth bit size.

14. The system of claim 13 , wherein the first bit size and the third bit size are equal.

15. The system of claim 13 , wherein the first bit size and the second bit size are equal.

16. The system of claim 13 , wherein the first bit size and the second bit size are different.

17. A non-transitory computer-readable medium comprising instructions, which when executed by a computing device, cause the computing device to perform operations comprising:

for each of a plurality of convolutional layers of a neural network model during each training iteration of a plurality of training iterations:

passing quantized training data through the convolutional layer of the neural network model to generate convolutional results;

passing the convolutional results through a batch normalization layer of the neural network model to update normalization parameters of the batch normalization layer;

fusing the convolutional layer with the batch normalization layer to generate a fused layer;

quantizing fused parameters of the fused layer;

passing the quantized training data through the fused layer using the quantized fused parameters to generate output data;

quantizing the output data; and

providing the neural network model to an electronic device as a trained neural network model comprising the convolutional layer fused with the batch normalization layer and the quantized fused parameters for execution by the electronic device.

18. The non-transitory computer-readable medium of claim 17 , wherein the trained neural network model is provided to a computing platform of the electronic device, and wherein the computing platform comprises a field-programmable gate array or an application-specific integrated circuit.

19. The non-transitory computer-readable medium of claim 18 , wherein the computing platform comprises the field-programmable gate array.

20. The non-transitory computer-readable medium of claim 18 , wherein the computing platform comprises the application-specific integrated circuit.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2023
From: XNOR.AI, INC.
To: APPLE INC.
Reel/Frame 063180/0018 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2023
From: RASTEGARI, MOHAMMAD; LEBRECHT, SOPHIE; GELSEY, JONATHAN; NADERIPARIZI, SAMAN; KHATAMIFARD, SAYYED KAREN; GABRIEL, JAMES; CHRONISTER, ANDREW; BAKIN, DAVID; LUO, ANDREW; BAGHERINEZHAD, HESSAM; PRABHU, ANISH
To: XNOR.AI, INC.
Reel/Frame 062833/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2020
From: GABRIEL, JAMES C.; RASTEGARI, MOHAMMAD; BAGHERINEZHAD, HESSAM; NADERIPARIZI, SAMAN; PRABHU, ANISH; LEBRECHT, SOPHIE; GELSEY, JONATHAN; KHATAMIFARD, SAYYED KAREN; CHRONISTER, ANDREW L.; BAKIN, DAVID; LUO, ANDREW Z.
To: XNOR.AI, INC.
Reel/Frame 054622/0493 →
Continuity (3)
Provisional Application 62804684 · Feb 12, 2019
Provisional Application 62804744 · Feb 12, 2019
Related Publication 20200257960A1 · Aug 13, 2020
Cited By (1)
US 12,608,596