Patent ID: 11900577
Assignee: CANON KABUSHIKI KAISHA
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 15:
16. A processing apparatus for performing operations with a convolutional neural network having a plurality of layers, the apparatus comprising:
a controller configured to sequentially select each of the plurality of layers as a target layer;
a data holder configured to hold at least some of data of a plurality of channels in the target layer;
a plurality of processors, each configured to perform, in parallel, a multiply-accumulate operation using the data of one channel of the target layer and a coefficient corresponding to the target layer;

an accumulator configured to accumulate processing results of each of the plurality of processors; and
a selector configured to select whether to perform first processing or second processing on the basis of information specifying processing in the target layer,
the first processing including while inputting the data of different channels of the target layer into respective processors of the plurality of processors in parallel, inputting the data of pixels of one channel of the target layer into a corresponding processor of the plurality of processors to calculate a value corresponding to data of a pixel of one channel of the next layer after the target layer by one processor of the plurality of processors, and outputting a processing result of each of the plurality of processors as a value corresponding to input data of corresponding channel in the next layer after the target layer, and
the second processing including while inputting the data of different channels of the target layer into respective processors of the plurality of processors in parallel, inputting the data of pixels of one channel of the target layer into a corresponding processor of the plurality of processors, accumulating the processing results of each of the plurality of processors by the accumulator to calculate a value corresponding to data of a pixel of one channel of the next layer, and outputting the accumulated processing results obtained by the accumulator as a value corresponding to input data of a single channel in the next layer.