US 12,223,418 B1
Communicating a neural network feature vector (NNFV) to a host and receiving back a set of weight values for a neural network
Nicolaas J. Viljoen, Cambridge (GB)
Assigned to Netronome Systems, Inc., Harmony, PA (US)
Filed by Netronome Systems, Inc., Santa Clara, CA (US)
Filed on Sep. 1, 2015, as Appl. No. 14/841,722.
Int. Cl. G06N 3/08 (2023.01); G06N 20/00 (2019.01)
CPC G06N 3/08 (2013.01) [G06N 20/00 (2019.01)] 15 Claims
OG exemplary drawing
 
1. A method comprising:
(a) receiving a plurality of packets of a first flow onto a first device and generating therefrom a Neural Network Feature Vector (NNFV), wherein the first device includes a neural network, wherein the neural network includes multiple perceptron circuits, wherein the NNFV includes a log of information about the first flow, wherein the log of information includes a single-bit answer value, wherein the single-bit answer value is determined on the first device by a heuristic, and wherein the single-bit answer value is indicative of whether the first device has determined that the first flow has a particular type-of-flow characteristic;
(b) communicating the NNFV from the first device to a second device, wherein the second device comprises a multi-layer software-implemented neural network, wherein the multi-layer software-implemented neural network comprises a first software perceptron and a second software perceptron, wherein the first software perceptron is in a first layer of the multi-layer software-implemented neural network, and wherein the second software perceptron is in a second layer of the multi-layer software-implemented neural network;
(c) using the NNFV on the second device to determine a set of weight values for the neural network on the first device, wherein the using of (c) includes determining a first weight value of the set of weight values by determining a difference between the single-bit answer value and a first perceptron result value output by the first software perceptron, and wherein the using of (c) further includes determining a second weight value of the set of weight values by determining a difference between the single-bit answer value and a second perceptron result value output by the second software perceptron;
(d) communicating the set of weight values from the second device to the first device;
(e) loading the set of weight values into the neural network on the first device;
(f) receiving a plurality of packets of a second flow onto the first device; and
(g) using the neural network to make a determination on the first device that the second flow likely has the particular type-of-flow characteristic.