Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020117989 - EXECUTION OF TRAINED NEURAL NETWORKS USING A DATABASE SYSTEM

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ EN ]

CLAIMS

What is claimed is:

1. A computer-implemented method for efficient execution of a trained neural network using a database system, the trained neural network comprising a plurality of layers each comprising weight values and bias values and programmed at each of the layers to execute an affine transformation of an activation function and input data, the method comprising:

for a particular layer of the trained neural network, dividing the affine

transformation into a plurality of transformation pieces;

executing each of the transformation pieces to result in computed pieces and writing the computed pieces to a first database table;

using one or more database queries, combining the computed pieces and applying the activation function to generate a set of output data;

writing the output data to one of a plurality of different second database tables that respectively correspond to the layers;

repeating the dividing, executing, combining, applying and writing for all layers of the trained neural network.

2. The method of Claim 1 further comprising:

before the other steps of Claim 1, programmatically receiving the input data from an application program;

after the steps of Claim 1, programmatically providing the output data to the application program.

3. The method of Claim 1 wherein the database is a columnar data store.

4. The method of Claim 1 further comprising executing each of the transformation pieces in parallel.

5. The method of Claim 1 wherein combining the computed pieces and applying the activation function to generate a set of output data comprises:

evaluating a first layer based on the input data;

for each subsequent layer of one or more subsequent layers, evaluating the subsequent layer based on the output data that was generated by one or more previous layers.

6. A database system for efficient execution of a trained neural network, the trained neural network comprising a plurality of layers each comprising weight values and bias values and programmed at each of the layers to execute an affine transformation of an activation function and an input value, the database system comprising:

one or more processors;

a database;

a digital electronic memory storing instructions which, when executed using the one or more processors, cause:

for a particular layer of the trained neural network, dividing the affine transformation into a plurality of transformation pieces;

executing each of the transformation pieces to result in computed pieces and writing the computed pieces to a first database table;

using one or more database queries, combining the computed pieces and applying the activation function to generate a set of output data;

writing the output data to one of a plurality of different second database tables that respectively correspond to the layers;

repeating the dividing, executing, combining, applying and writing for all layers of the trained neural network.

7. The database system of Claim 6, further storing instructions which, when executed using the one or more processors, cause:

before the other steps of Claim 6, programmatically receiving the input value from an application program;

after the steps of Claim 6, programmatically providing the output data to the application program.

8. The database system of Claim 6 wherein the database is a columnar data store.

9. The database system of Claim 6 further storing instructions which, when executed using the one or more processors, cause executing each of the transformation pieces in parallel.

10. The database system of Claim 6 wherein combining the computed pieces and applying the activation function to generate a set of output data comprises:

evaluating a first layer based on the input data;

for each subsequent layer of one or more subsequent layers, evaluating the subsequent layer based on the output data that was generated by one or more previous layers.

11. A database system configured to execute a trained neural network, the database system comprising:

one or more processors;

a database;

a digital electronic memory storing instructions which, when executed using the one or more processors, cause:

storing, in the database, one or more sets of input data for testing the trained neural network;

receiving a first set of queries corresponding to a first layer of the trained neural network;

executing the first set of queries, based on the one or more sets of input data, to generate a first set of output data corresponding to the first layer;

storing the first set of output data in a first output table in the database.

12. The database system of Claim 11 wherein the first set of queries comprises a set of one or more affine transformation queries and a set of one or more activation function queries.

13. The database system of Claim 12 wherein executing the set of one or more affine transformation queries comprises applying a set of weights and biases specified by the first layer to each set of input data in the one or more sets of input data and storing results to one or more piece tables.

14. The database system of Claim 13 wherein executing the set of one or more activation function queries comprises applying an activation function specified by the first layer to the results stored in the one or more piece tables to generate the first set of output data.

15. The database system of Claim 14, wherein the results are stored in a plurality of piece tables, further comprising instructions which, when executed using the one or more processors, cause:

combining the results from the plurality of piece tables to generate a combined result;

applying the activation function to the combined result.

16. The database system of Claim 11, further comprising instructions which, when executed using the one or more processors, cause:

receiving a second set of queries correspond to a second layer of the trained neural network;

executed the second set of queries, based on the first set of output data corresponding to the first layer, to generate a second set of output data corresponding to the second layer;

storing the second set of output data in the database.

17. The database system of Claim 11 wherein the database is a BigQuery data store.