IP Library Granted Patent US 11,308,392
Granted Patent B2
US 11,308,392 · App. 15/693,491 · Granted Apr 19, 2022

Fixed-point training method for deep neural networks based on static fixed-point conversion scheme

Inventors: Xin Li (Beijing, CN); Tong Meng (Beijing, CN); Song Han (Beijing, CN)
Assignee: XILINX TECHNOLOGY BEIJING LIMITED
G06N3/08G06N3/0445G06N3/063G06F7/485G06N7/005
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,308,392
App. No.
15/693,491
Granted
Apr 19, 2022
Kind
B2
Abstract

The present disclosure proposes a fixed-point training method and apparatus based on static fixed-point conversion scheme. More specifically, the present disclosure proposes a fixed-point training method for LSTM neural network. According to this method, during the fine-tuning process of the neural network, it uses fixed-point numbers to conduct forward calculation. Accordingly, within several training cycles, the network accuracy may returned to the desired accuracy level under floating point calculation.

Claims (53)

1. A fixed-point training method for a floating point neural network, comprising

a fixed-point conversion scheme determining step, for determining a fixed-point conversion scheme used for a forward calculation process of said floating point neural network, wherein said determining the fixed-point conversion scheme is based on said floating point neural network such that the fixed-point conversion scheme reduces a number of overflow instances in network forward calculation (A) according to the fixed-point conversion scheme and (B) related to said floating point neural network,

wherein said fixed-point conversion scheme comprises a total bit length and a decimal bit length of a fixed-point number used for representing a corresponding floating point number, and

wherein forward calculation for a neural network comprises calculation and storage of intermediate results and outputs for the neural network in an order from an input layer of the neural network to an output layer of the neural network;

a fixed-point neural network obtaining step, for converting weights of said floating point neural network from floating point numbers to fixed-point numbers, so as to obtain a corresponding fixed-point neural network;

a fixed-point forward calculation step, for conducting a fixed-point forward calculation of said fixed-point neural network using a training dataset according to said fixed-point conversion scheme; and

a neural network updating step, for updating weights of said floating point neural network based on the calculation result of said fixed-point forward calculation,

wherein said fixed-point conversion scheme determining step comprises:

using a verification set to conduct a floating point forward calculation of said floating point neural network;

determining the value range of the intermediate calculation results of said floating point forward calculation; and

determining said fixed-point conversion scheme based on said value range.

2. The method according to claim 1 , further comprises: executing iteratively said fixed-point conversion scheme determining step, said fixed-point neural network obtaining step, said fixed-point forward calculation step and said neural network updating step, until the floating point neural network achieves a desired accuracy.

3. The method according to claim 1 , wherein said fixed-point neural network obtaining step further comprises: converting weights of said floating point neural network to fixed-point numbers by a rule of fixed-point conversion of floating point number.

4. The method according to claim 1 , wherein said fixed-point forward calculation step further comprises: during said fixed-point forward calculation, determining the total bit number and the decimal bit length of said training dataset as well as the total bit number and the decimal bit length of intermediate calculation results of the fixed-point forward calculation on the basis of said fixed-point conversion scheme.

5. The method according to claim 1 , wherein said neural network updating step further comprises:

comparing the calculation result of said fixed-point forward calculation with a standard value to obtain an accuracy loss; and

calculating a floating point gradient based on said accuracy loss, and updating said floating point neural network based on said floating point gradient.

6. The method according to claim 1 , wherein said floating point neural network is an LSTM neural network, and said training dataset is a voice dataset.

7. A fixed-point training method for a floating point neural network, comprising

an initial training step, for training said floating point neural network into an intermediate neural network with a predetermined accuracy;

a fixed-point conversion scheme determining step, for using a verification set to conduct a floating point forward calculation of said intermediate neural network, so as to determine a fixed-point conversion scheme used for a forward calculation process of said intermediate neural network, wherein said determining the fixed-point conversion scheme is based on said intermediate neural network such that the fixed-point conversion scheme reduces a number of overflow instances in network forward calculation (A) according to the fixed-point conversion scheme and (B) related to said intermediate neural network,

wherein said fixed-point conversion scheme comprises a total bit length and a decimal bit length of a fixed-point number used for representing a corresponding floating point number, and

wherein forward calculation for a neural network comprises calculation and storage of intermediate results and outputs for the neural network in an order from an input layer of the neural network to an output layer of the neural network;

a fixed-point neural network obtaining step, for converting weights of said intermediate neural network from floating point numbers to fixed-point numbers, so as to obtain a corresponding fixed-point neural network;

a fixed-point forward calculation step, for conducting a fixed-point forward calculation of said fixed-point neural network using a training dataset, on the basis of said fixed-point conversion scheme; and

an intermediate neural network updating step, for updating weights of said intermediate neural network based on the calculation result of said fixed-point forward calculation,

wherein said fixed-point conversion scheme determining step comprises:

using a verification set to conduct a floating point forward calculation of said floating point neural network;

determining the value range of intermediate calculation results of said floating point forward calculation; and

determining said fixed-point conversion scheme based on said value range.

8. The method according to claim 7 , further comprises: executing iteratively said fixed-point conversion scheme determining step, said fixed-point neural network obtaining step, said fixed-point forward calculation step, and said intermediate neural network updating step, until said intermediate neural network reaches a desired accuracy.

9. The method according to claim 7 , wherein said fixed-point conversion scheme includes: the total bit length and the decimal bit length of a fixed-point number used for representing a corresponding floating point number.

10. The method according to claim 7 , wherein said fixed-point neural network obtaining step further comprises: converting weights of said floating point neural network to fixed-point numbers by a rule of fixed-point conversion of floating point number.

11. The method according to claim 7 , wherein said fixed-point forward calculation step further comprises: during said fixed-point forward calculation, determining the total bit number and the decimal bit length of said training dataset as well as the total bit number and the decimal bit length of intermediate calculation results of said fixed-point forward calculation, on the basis of said fixed-point conversion scheme.

12. The method according to claim 7 , wherein said intermediate neural network updating step further comprises:

comparing the calculation result of said fixed-point forward calculation with a standard value to obtain an accuracy loss; and

calculating a floating point gradient based on said accuracy loss, and updating said intermediate neural network based on said floating point gradient.

13. A fixed-point training apparatus for a floating point neural network, comprising

a fixed-point conversion scheme determining module, for determining a fixed-point conversion scheme used for a forward calculation process of said floating point neural network, wherein said determining the fixed-point conversion scheme is based on said floating point neural network such that the fixed-point conversion scheme reduces a number of overflow instances in network forward calculation (A) according to the fixed-point conversion scheme and (B) related to said floating point neural network,

wherein said fixed-point conversion scheme comprises a total bit length and a decimal bit length of a fixed-point number used for representing a corresponding floating point number, and

wherein forward calculation for a neural network comprises calculation and storage of intermediate results and outputs for the neural network in an order from an input layer of the neural network to an output layer of the neural network;

a fixed-point neural network obtaining module, for converting weights of said floating point neural network from floating point numbers to fixed-point numbers, so as to obtain a corresponding fixed-point neural network;

a fixed-point forward calculation module, for conducting a fixed-point forward calculation of said fixed-point neural network using a training dataset, on the basis of said fixed-point conversion scheme; and

a neural network updating module, for updating weights of said floating point neural network based on the calculation result of said fixed-point forward calculation,

wherein said fixed-point conversion scheme determining module comprises:

a value range determining unit, for using a verification set to conduct a floating point forward calculation of said floating point neural network, so as to determine the value range of intermediate calculation results of said floating point forward calculation; and

a fixed-point conversion scheme determining unit, for determining said fixed-point conversion scheme based on said value range.

14. The apparatus according to claim 13 , wherein said fixed-point conversion scheme includes: the total bit length and the decimal bit length of a fixed-point number used for representing a corresponding floating point number.

15. The apparatus according to claim 13 , wherein said fixed-point neural network obtaining module is configured to convert weights of said floating point neural network to fixed-point numbers by a rule of fixed-point conversion of floating point number.

16. The apparatus according to claim 13 , wherein said fixed-point forward calculation module is configured to determine, during said fixed-point forward calculation, the total bit number and the decimal bit length of said training dataset as well as the total bit number and the decimal bit length of intermediate calculation results of said fixed-point forward calculation, on the basis of said fixed-point conversion scheme.

17. The apparatus according to claim 13 , wherein said neural network updating module further comprises:

a comparing unit, for comparing the calculation result of said fixed-point forward calculation with a standard value to obtain an accuracy loss; and

an updating unit, for calculating a floating point gradient based on said accuracy loss, and updating weights of said floating point neural network based on said floating point gradient.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2020
From: BEIJING DEEPHI INTELLIGENT TECHNOLOGY CO., LTD.
To: XILINX TECHNOLOGY BEIJING LIMITED
Reel/Frame 053581/0037 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 044346 FRAME: 0312. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 8, 2018
From: LI, XIN; HAN, SONG; MENG, TONG
To: BEIJING DEEPHI INTELLIGENT TECHNOLOGY CO., LTD.
Reel/Frame 045529/0127 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2017
From: LI, XIN; MENG, TONG; HAN, SONG
To: BEIJING DEEPHI INTELLIGENCE TECHNOLOGY CO., LTD.
Reel/Frame 044346/0312 →
Priority Claims (1)
CN 201710629211.5 · Jul 28, 2017 · national
Continuity (1)
Related Publication 20190034796A1 · Jan 31, 2019