IP Library Granted Patent US 11,315,219
Granted Patent B2
US 11,315,219 · App. 16/888,171 · Granted Apr 26, 2022

Remote distribution of neural networks

Inventors: Guohui Wang (Los Angeles, CA); Sumant Milind Hanumante (Marina Del Rey, CA); Ning Xu (Irvine, CA); Yuncheng Li (Los Angeles, CA)
Assignee: Snap Inc.
G06T3/4046G06N3/04G06N3/063G06N3/08G06T1/20G06T11/60G06T2207/20081
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,315,219
App. No.
16/888,171
Granted
Apr 26, 2022
Kind
B2
Abstract

Remote distribution of multiple neural network models to various client devices over a network can be implemented by identifying a native neural network and remotely converting the native neural network to a target neural network based on a given client device operating environment. The native neural network can be configured for execution using efficient parameters, and the target neural network can use less efficient but more precise parameters.

Claims (60)

1. A method comprising:

receiving report usage data from a client device;

determining an image effect based on the report usage data;

identifying a neural network model associated with the image effect, the neural network model being in the memory of the client device that is allocated to the application by an operating system of the client device; the identified neural network model being trained to modify images using the image effect;

determining a target neural network model based on the operating system having libraries for parallel execution of neural networks on a plurality of processors of the client device, the target neural network model having input parameters not included in the neural network model;

generating the target neural network model from the neural network model;

causing a user interface element associated with the image effect to be displayed by the client device; and

generating a modified image by applying the target neural network model to an image using the plurality of processors of the client device in parallel.

2. The method of claim 1 , wherein the input parameters include an input image size of the identified image.

3. The method of claim 2 , further comprising:

identifying computational hardware of the client device; and

modifying a size of the identified image to the input image size based on the identified computational hardware of the client device.

4. The method of claim 3 , wherein generating the target neural network model comprises:

specifying the input parameters of the target neural network model; and

compiling the target neural network model using the specified input parameters.

5. The method of claim 4 , wherein specifying the input parameters includes specifying the input image size as one of the specified input parameters.

6. The method of claim 1 , wherein the memory allocated to the application further comprises a plurality of mappings for a plurality of target neural network models of different types, each of the plurality of mappings specifying conversions from the neural network model to a particular target neural network model; and

wherein generating the target neural network model comprises:

identifying, in the memory allocated to the application, one of the plurality of mappings based on the received instruction.

7. The method of claim 6 , wherein the mapping comprises:

dimensional data conversions for converting dimensional data in the neural network model to dimensional data in the target neural network model.

8. The method of claim 6 , wherein the mapping comprises:

label conversions for objects in the neural network model and objects in the target neural network model.

9. The method of claim 1 , generating the target neural network model comprises:

converting numerical values in a first format used by the neural network model to a second format used by the target neural network model.

10. The method of claim 9 , wherein the numerical values are neural network connection weights, the first format being a truncated format and the second format being an extended format that has more digits than the truncated format.

11. The method of claim 9 , wherein the first format is a first floating point precision and the second format of the target neural network is a second floating point precision that is at least twice as precise the first floating point precision.

12. The method of claim 9 , further comprising:

receiving, over a network, a second neural network model having numerical values in the first format; and

generating a second target neural network model configured to use numerical values in the second format.

13. The method of claim 1 , wherein the neural network model comprises:

a sequence of network layers, parameters for each of the network layers, connections between the network layers, and weights for the connections that were generated by training the neural network model to generate the modified image.

14. The method of claim 1 , wherein determining the image effect based on the report usage data comprises determining the image effect based on frequency statistics from the report usage data.

15. The method of claim 1 , further comprising

displaying the modified image based on a user selection of the user interface element associated with the image effect.

16. The method of claim 1 , wherein the plurality of processors comprise parallel execution units of a graphics processing unit (GPU) in the client device.

17. A system comprising:

a plurality of processors of a client device; and

a memory storing instructions that, when executed by the plurality of processors, cause the system to perform operations comprising:

receiving report usage data from a client device;

determining an image effect based on the report usage data;

identifying a neural network model associated with the image effect, the neural network model being in the memory of the client device that is allocated to the application by an operating system of the client device, the identified neural network model being trained to modify images using the image effect;

determining a target neural network model based on the operating system having libraries for parallel execution of neural networks on a plurality of processors of the client device, the target neural network model having input parameters not included in the neural network model;

generating the target neural network model from the neural network model;

causing a user interface element associated with the image effect to be displayed by the client device; and

generating a modified image by applying the target neural network model to an image using the plurality of processors of the client device in parallel.

18. The system of claim 17 , wherein the input parameters include an input image size of the identified image, the operations further comprising:

identifying computational hardware of the client device; and

modifying a size of the identified image to the input image size based on the identified computational hardware of the client device.

19. A non-transitory machine-readable storage device embodying instructions that, when executed by a client device, cause the client device to perform operations comprising:

receiving report usage data from a client device;

determining an image effect based on the report usage data;

identifying a neural network model associated with the image effect, the neural network model being in the memory of the client device that is allocated to the application by an operating system of the client device, the identified neural network model being trained to modify images using the image effect;

determining a target neural network model based on the operating system having libraries for parallel execution of neural networks on a plurality of processors of the client device, the target neural network model having input parameters not included in the neural network model;

generating the target neural network model from the neural network model;

causing a user interface element associated with the image effect to be displayed by the client device; and

generating a modified image by applying the target neural network model to an image using the plurality of processors of the client device in parallel.

20. The non-transitory machine-readable storage device of claim 19 , wherein the input parameters include an input image size of the identified image, the operations further comprising:

identifying computational hardware of the client device; and

modifying a size of the identified image to the input image size based on the identified computational hardware of the client device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2022
From: WANG, GUOHUI; HANUMANTE, SUMANT MILIND; XU, NING; LI, YUNCHENG
To: SNAP INC.
Reel/Frame 059390/0500 →
Continuity (2)
Continuation 15908461 · Feb 28, 2018
Related Publication 20200294195A1 · Sep 17, 2020
Cited By (1)
US 12,288,309