IP Library Granted Patent US 11,106,976
Granted Patent B2
US 11,106,976 · App. 16/459,731 · Granted Aug 31, 2021

Neural network output layer for machine learning

Inventor: Sylvain Flamant (Saratoga, CA)
Assignee: Wave Computing, Inc.
G06N3/08G06F16/902G06F17/16
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,106,976
App. No.
16/459,731
Granted
Aug 31, 2021
Kind
B2
Abstract

Techniques for a neural network output layer for machine learning are disclosed. A plurality of processing elements within a reconfigurable fabric is configured to implement a data flow graph, where the data flow graph implements a neural network. The data flow graph can include machine learning or deep learning. A layer is implemented, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one, where the second vector sums to a value of one using fixed-point calculations. The layer can include a final layer within the neural network. The layer that maps the first vector includes a Softmax function. Results of the neural network are classified based on a value of the second vector. The classifying can include part of a machine learning or a deep learning process.

Claims (149)

1. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, based on a parabolic estimator function,

within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector.

2. The method of claim 1 wherein the layer is a final layer within the neural network.

3. The method of claim 1 wherein the layer that maps the first vector comprises a Softmax function.

4. The method of claim 3 wherein the layer that maps the first vector is an output layer for the neural network.

5. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network; and

the layer is based on a parabolic estimator function.

6. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function; and

the parabolic estimator function is implemented using lookup tables.

7. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function;

the parabolic estimator function is implemented using lookup tables; and

the lookup tables comprise three lookup tables.

8. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function;

the parabolic estimator function is implemented using lookup tables;

the lookup tables comprise three lookup tables; and

further comprising two multiplex per element of an output vector.

9. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function;

the parabolic estimator function is implemented using lookup tables;

the lookup tables comprise three lookup tables;

further comprising two multiplex per element of an output vector; and

no more than three multipliers per element of an output vector are used.

10. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function;

the parabolic estimator function is implemented using lookup tables;

the lookup tables comprise three lookup tables; and

the three lookup tables are each 256 elements or fewer in length.

11. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function;

the parabolic estimator function is implemented using lookup tables; and

the lookup tables comprise equidistant points.

12. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function;

the parabolic estimator function is implemented using lookup tables;

the lookup tables comprise equidistant points; and

values between two equidistant points with a lookup table correspond to an integer number of intervals between the two points.

13. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network,

the layer is based on a parabolic estimator function;

the parabolic estimator function is implemented using lookup tables;

the lookup tables comprise equidistant points;

values between two equidistant points with a lookup table correspond to an integer number of intervals between the two points; and

the integer number of intervals is based on a power of two.

14. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network;

the layer is based on a parabolic estimator function; and

the parabolic estimator function is implemented using one lookup table.

15. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network;

the layer is based on a parabolic estimator function; and

the parabolic estimator function is based on a moving set of three points.

16. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network;

the layer is based on a parabolic estimator function; and

the parabolic estimator function implements e Xi or k Xi for the layer, where Xi are arguments of the Softmax function, k is a real number greater than 1, and e is the natural logarithm base.

17. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network;

the layer is based on a parabolic estimator function;

the parabolic estimator function implements e Xi or k Xi for the layer, where Xi are arguments of the Softmax function, k is a real number greater than 1, and e is the natural logarithm base; and

k Xi is calculated using 16-bit fixed-point arithmetic.

18. A processor-implemented method for data manipulation comprising:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector;

wherein the layer that maps the first vector comprises a Softmax function,

the layer that maps the first vector is an output layer for the neural network;

the layer is based on a parabolic estimator function;

the parabolic estimator function implements e Xi or k Xi for the layer, where Xi are arguments of the Softmax function, k is a real number greater than 1, and e is the natural logarithm base; and

k is equal to 2.

19. The method of claim 1 further comprising using 16-bit fixed-point arithmetic for training passes.

20. The method of claim 6 wherein lookup table entries are calculated offline.

21. A computer program product embodied in a non-transitory computer readable medium for data manipulation, the computer program product comprising code which causes one or more processors to perform operations of:

configuring a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implementing a layer, based on a parabolic estimator function,

within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums of one using fixed point calculations; and

classifying results of the neural network based on a value of the second vector.

22. A computer system for data manipulation comprising:

a memory which stores instructions;

one or more processors coupled to the memory wherein the one or more processors, when executing the instructions which are stored, are configured to

configure a plurality of processing elements within a reconfigurable fabric to implement a data flow graph, wherein the data flow graph implements a neural network;

implement a layer, based on a parabolic estimator function,

within the neural network, that maps a first vector of real values to a second vector of real values bounded by zero and one wherein the second vector sums to a value of one using fixed point calculations; and

classify results of the neural network based on a value of the second vector.

Assignments (6)
CHANGE OF NAME Recorded May 8, 2024
From: WAVE COMPUTING, INC.
To: MIPS HOLDING, INC.
Reel/Frame 067355/0324 →
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2019
From: FLAMANT, SYLVAIN
To: WAVE COMPUTING, INC.
Reel/Frame 050061/0403 →