| CPC G06N 3/063 (2013.01) [G06F 7/00 (2013.01); G06F 7/5443 (2013.01); G06N 3/04 (2013.01); G06N 3/045 (2023.01); G06N 3/08 (2013.01)] | 20 Claims |

|
1. A computer-implemented method of configuring a hardware implementation of a Convolutional Neural Network (CNN), the method comprising:
receiving, in a computer system, parameters of a CNN having a plurality of layers, said parameters including weight values and expected data values;
determining, in the computer system, for each of a plurality of layers of the CNN, a first number format for representing weight values in the layer based upon a distribution of weight values for the layer, the first number format comprising a first integer of a first predetermined bit-length and a first exponent value that is fixed for the layer;
determining, in the computer system, for each of a plurality of layers of the CNN, a second number format for representing data values in the layer based upon a distribution of expected data values for the layer, the second number format comprising a second integer of a second predetermined bit-length and a second exponent value that is fixed for the layer;
storing in a computer readable storage medium the determined number formats for use in configuring the hardware implementation of a CNN; and
tuning the weight values, the tuning comprising:
selecting, for each of a plurality of layers, a subset of the weight values in that layer, wherein the subset is less than all of the weight values in that layer,
quantising, for each of a plurality of layers, the selected subset of weight values in that layer in accordance with the first number format for that layer to generate modified weight values in that layer, wherein the modified weight values in that layer are less than all of the weight values in that layer, and
training the CNN using the modified weight values to generate tuned weight values.
|