IP Library › Granted Patent US 10,855,986
Granted Patent B2
US 10,855,986 · App. 15/991,685 · Granted Dec 1, 2020

Bandwidth compression for neural network systems

Inventors: In Suk Chong (San Diego, CA); Xianglin Wang (San Diego, CA); Cheng-Teh Hsieh (Del Mar, CA)
Assignee: Qualcomm Incorporated
H04N19/13G06N3/02H03M7/3066H04L69/04H04N19/176
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,855,986
App. No.
15/991,685
Granted
Dec 1, 2020
Kind
B2
Abstract

Techniques and systems are provided for compressing data in a neural network. For example, output data can be obtained from a node of the neural network. Re-arranged output data having a re-arranged scanning pattern can be generated. The re-arranged output data can be generated by re-arranging the output data into the re-arranged scanning pattern. One or more residual values can be determined for the re-arranged output data by applying a prediction mode to the re-arranged output data. The one or more residual values can then be compressed using a coding mode.

Claims (70)

1. A method of compressing data in a neural network, the method comprising:

obtaining activation data from an intermediate node of the neural network, the neural network including at least one input node, at least one intermediate node, and at least one output node, the at least one intermediate node including the intermediate node;

generating re-arranged activation data having a re-arranged scanning pattern, wherein the re-arranged activation data is generated by re-arranging the activation data from the intermediate node of the neural network into the re-arranged scanning pattern;

determining one or more residual values for the re-arranged activation data, the one or more residual values being determined by applying a prediction mode to the re-arranged activation data;

compressing the one or more residual values using a coding mode;

storing the compressed one or more residual values;

generating decompressed activation data using the stored one or more compressed residual values; and

providing, as input to one or more additional intermediate nodes of the neural network, the decompressed activation data.

2. The method of claim 1 , wherein determining the one or more residual values for the re-arranged activation data includes:

determining one or more predictors based on the prediction mode applied to the re-arranged activation data; and

determining the one or more residual values using the one or more predictors.

3. The method of claim 1 , wherein the prediction mode includes one or more of a minimum-maximum prediction mode, a spatial prediction mode, and a non-prediction mode, wherein no prediction is performed in the non-prediction mode.

4. The method of claim 3 , further comprising selecting the prediction mode from among the minimum-maximum prediction mode, the spatial prediction mode, and the non-prediction mode based on the activation data from the intermediate node of the neural network.

5. The method of claim 1 , wherein the prediction mode includes a minimum-maximum prediction mode, and wherein applying the minimum-maximum prediction mode includes:

determining a minimum value of the re-arranged activation data;

determining a maximum value of the re-arranged activation data;

selecting the minimum value or the maximum value as a predictor for each data sample in the re-arranged activation data; and

determining a residual value for each data sample using a respective predictor of each data sample and a respective value of each data sample.

6. The method of claim 5 , wherein the minimum value is selected as a predictor for a data sample in the re-arranged activation data if a difference between a value of the data sample and the minimum value is greater than a difference between the maximum value and the value of the data sample.

7. The method of claim 5 , wherein the maximum value is selected as a predictor for a data sample in the re-arranged activation data if a difference between a value of the data sample and the minimum value is not greater than a difference between the maximum value and the value of the data sample.

8. The method of claim 1 , wherein the activation data is in three dimensions, and wherein the re-arranged scanning pattern of the re-arranged activation data is in two dimensions.

9. The method of claim 1 , wherein the coding mode includes run-length coding with variable length coding.

10. An apparatus for compressing data in a neural network, comprising:

a memory configured to store the data; and

a processor configured to:

obtain activation data from an intermediate node of the neural network, the neural network including at least one input node, at least one intermediate node, and at least one output node, the at least one intermediate node including the intermediate node;

generate re-arranged activation data having a re-arranged scanning pattern, wherein the re-arranged activation data is generated by re-arranging the activation data from the intermediate node of the neural network into the re-arranged scanning pattern;

determine one or more residual values for the re-arranged activation data, the one or more residual values being determined by applying a prediction mode to the re-arranged activation data;

compress the one or more residual values using a coding mode;

store the compressed one or more residual values;

generate decompressed activation data using the stored one or more compressed residual values; and

provide, as input to one or more additional intermediate nodes of the neural network, the decompressed activation data.

11. The apparatus of claim 10 , wherein determining the one or more residual values for the re-arranged activation data includes:

determining one or more predictors based on the prediction mode applied to the re-arranged activation data; and

determining the one or more residual values using the one or more predictors.

12. The apparatus of claim 10 , wherein the prediction mode includes one or more of a minimum-maximum prediction mode, a spatial prediction mode, and a non-prediction mode, wherein no prediction is performed in the non-prediction mode.

13. The apparatus of claim 12 , wherein the processor is further configured to select the prediction mode from among the minimum-maximum prediction mode, the spatial prediction mode, and the non-prediction mode based on the activation data from the intermediate node of the neural network.

14. The apparatus of claim 10 , wherein the prediction mode includes a minimum-maximum prediction mode, and wherein applying the minimum-maximum prediction mode includes:

determining a minimum value of the re-arranged activation data;

determining a maximum value of the re-arranged activation data;

selecting the minimum value or the maximum value as a predictor for each data sample in the re-arranged activation data; and

determining a residual value for each data sample using a respective predictor of each data sample and a respective value of each data sample.

15. The apparatus of claim 14 , wherein the minimum value is selected as a predictor for a data sample in the re-arranged activation data if a difference between a value of the data sample and the minimum value is greater than a difference between the maximum value and the value of the data sample.

16. The apparatus of claim 14 , wherein the maximum value is selected as a predictor for a data sample in the re-arranged activation data if a difference between a value of the data sample and the minimum value is not greater than a difference between the maximum value and the value of the data sample.

17. The apparatus of claim 10 , wherein the activation data is in three dimensions, and wherein the re-arranged scanning pattern of the re-arranged activation data is in two dimensions.

18. The apparatus of claim 10 , wherein the coding mode includes run-length coding with variable length coding.

19. The apparatus of claim 10 , wherein the apparatus comprises a mobile device.

20. The apparatus of claim 19 , further comprising a camera for capturing one or more images, wherein the activation data is generated based on the one or more images.

21. The apparatus of claim 20 , further comprising a display for displaying the one or more images.

22. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to:

obtain activation data from an intermediate node of a neural network, the neural network including at least one input node, at least one intermediate node, and at least one node, the at least one intermediate node including the intermediate node;

generate re-arranged activation data having a re-arranged scanning pattern, wherein the re-arranged activation data is generated by re-arranging the activation data from the intermediate node of the neural network into the re-arranged scanning pattern;

determine one or more residual values for the re-arranged activation data, the one or more residual values being determined by applying a prediction mode to the re-arranged activation data;

compress the one or more residual values using a coding mode;

store the compressed one or more residual values;

generate decompressed activation data using the stored one or more compressed residual values; and

provide, as input to one or more additional intermediate nodes of the neural network, the decompressed activation data.

23. The non-transitory computer-readable medium of claim 22 , wherein determining the one or more residual values for the re-arranged activation data includes:

determining one or more predictors based on the prediction mode applied to the re-arranged activation data; and

determining the one or more residual values using the one or more predictors.

24. The non-transitory computer-readable medium of claim 22 , wherein the prediction mode includes one or more of a minimum-maximum prediction mode, a spatial prediction mode, and a non-prediction mode, wherein no prediction is performed in the non-prediction mode.

25. The non-transitory computer-readable medium of claim 24 , further comprising instructions that, when executed by the one or more processors, cause the one or more processor to select the prediction mode from among the minimum-maximum prediction mode, the spatial prediction mode, and the non-prediction mode based on the activation data from the intermediate node of the neural network.

26. The non-transitory computer-readable medium of claim 22 , wherein the prediction mode includes a minimum-maximum prediction mode, and wherein applying the minimum-maximum prediction mode includes:

determining a minimum value of the re-arranged activation data;

determining a maximum value of the re-arranged activation data;

selecting the minimum value or the maximum value as a predictor for each data sample in the re-arranged activation data; and

determining a residual value for each data sample using a respective predictor of each data sample and a respective value of each data sample.

27. The non-transitory computer-readable medium of claim 26 , wherein the minimum value is selected as a predictor for a data sample in the re-arranged activation data if a difference between a value of the data sample and the minimum value is greater than a difference between the maximum value and the value of the data sample, and wherein the maximum value is selected as a predictor for a data sample in the re-arranged activation data if a difference between a value of the data sample and the minimum value is not greater than a difference between the maximum value and the value of the data sample.

28. The non-transitory computer-readable medium of claim 22 , wherein the activation data is in three dimensions, and wherein the re-arranged scanning pattern of the re-arranged activation data is in two dimensions.

29. The non-transitory computer-readable medium of claim 22 , wherein the coding mode includes run-length coding with variable length coding.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE FIRST INVENTOR PREVIOUSLY RECORDED AT REEL: 046488 FRAME: 0571. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Aug 2, 2018
From: CHONG, IN SUK; WANG, XIANGLIN; HSIEH, CHENG-TEH
To: QUALCOMM INCORPORATED
Reel/Frame 046701/0654 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2018
From: CHONG, IN SUK; WANG, XIANGLIN; HSIEH, CHENG-TEH
To: QUALCOMM INCORPORATED
Reel/Frame 046488/0571 →
Continuity (1)
Related Publication 20190373264A1 · Dec 5, 2019