System and method for cascaded max pooling in neural networks
OwnerJohn Joseph, Serdar Sozubekinventors
Life of this patent
Estimating the term…
Abstract
A method for performing size K×K max pooling with stride S at a pooling layer of a convolutional neural network to downsample input data includes receiving input data, buffering the input data, applying a cascade of size 2×2 pooling stages to the buffered input data to generate downsampled output data, and outputting the downsampled output data to another layer of the convolutional neural network for further processing.
Claims20
A computer-implemented method for performing size K×K max pooling with stride S at a pooling layer of a convolutional neural network to downsample input data, the computer-implemented method comprising:
- receiving, at the max pooling layer, input data;
- buffering, at the max pooling layer, the input data;
- applying, at the max pooling layer, a cascade of size 2×2 pooling stages to the buffered input data to generate downsampled output data;
- and
- outputting, from the max pooling layer, the downsampled output data to another layer of the convolutional neural network for further processing.
A processing unit comprising:
- a first comparator operatively coupled to a data input and a delayed data input, the first comparator configured to output a greater of the data input or the delayed data input;
- a data buffer operatively coupled to an output line of the first comparator and a stride input, the data buffer configured to store an output of the first comparator;
- a second comparator operatively coupled to an output line of the data buffer and the output line of the first comparator, the second comparator configured to output a greater of the output of the first comparator or an output of the data buffer;
- a mask buffer operatively coupled to the output line of the first comparator, the mask buffer configured to remove unwanted values;
- a multiplexer operatively coupled to the output line of the mask buffer, to the output line of the first comparator, and to an output line of the second comparator, the multiplexer configured to select between an output of the mask buffer or the output of the first comparator in accordance with an output of the second comparator;
- and
- a controller in communication with the data buffer, the controller configured to receive a stride value, control the data buffer to buffer the output of the first comparator in accordance with the stride value, and output the buffered output of the first comparator in accordance with the stride value.
A device comprising:
- a central processing unit configured to execute instructions stored in a memory storage;
- and
- a processing unit operatively coupled to the central processing unit, the memory storage, and a data input, the processing unit configured to perform size K×K max pooling with stride S at a max pooling layer of a convolutional neural network to downsample input data received at the data input, wherein the processing unit performs the size K×K max pooling with stride S as a cascade of K−1 size 2×2 max pooling stages, where K and S are integer values.
Dependencies are inferred from the claim text.