US 11,941,533 B1
Compiler for performing zero-channel removal
Brian Thomas, Vancouver (CA); and Steven L. Teig, Menlo Park, CA (US)
Assigned to PERCEIVE CORPORATION, San Jose, CA (US)
Filed by Perceive Corporation, San Jose, CA (US)
Filed on Jul. 29, 2019, as Appl. No. 16/525,469.
Claims priority of provisional application 62/866,599, filed on Jun. 25, 2019.
Claims priority of provisional application 62/851,082, filed on May 21, 2019.
Int. Cl. G06N 3/04 (2023.01); G06N 3/063 (2023.01); G06N 3/08 (2023.01); G06N 3/10 (2006.01)
CPC G06N 3/105 (2013.01) [G06N 3/04 (2013.01); G06N 3/063 (2013.01); G06N 3/08 (2013.01)] 20 Claims
OG exemplary drawing
 
14. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for generating neural network program instructions for configuring a neural network inference circuit (NNIC) to execute a neural network, the program comprising sets of instructions for:
receiving a specification of the neural network comprising a plurality of layers, wherein each respective layer of a set of the layers comprises a respective set of filters that each comprises a respective plurality of filter-channels, each respective filter-channel of the filter-channels comprising a respective set of weight values that are applied to input values of the respective layer to generate output values for the respective layer, the output values of each respective layer of the set of layers arranged as a respective set of output-value-channels, wherein the output values of each respective output-value-channel of a respective set of output-value-channels of a respective layer are generated by applying the respective sets of weight values of the respective plurality of filter-channels of a respective filter of the respective layer;
based on the received neural network specification, identifying a set of filter-channels of a particular layer of the neural network, each filter-channel in the set of filter-channels comprising only zero weight values;
when the identified set of filter-channels comprises all of the filter-channels of a particular filter that is used to generate a particular output-value-channel of the particular layer such that the particular filter comprises only zero weight values, modifying the specification of the neural network by (i) removing the particular filter from the neural network specification, (ii) removing the particular output-value-channel from the neural network specification based on all of the weight values used to generate the particular output-value-channel being zero values such that the particular output-value-channel is not propagated to subsequent layers, and (iii) removing, from the neural network specification, filter-channels corresponding to the particular output-value channel, from each of the filters of a subsequent layer that uses the output-value-channels of the particular layer as input values; and
generating a set of program instructions for the NNIC to use to execute the modified neural network.