Convolutional Neural Network Stride Subdivision
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Convolutional neural networks (CNNs) face inefficiencies when dealing with input strides greater than 1, as existing methods require significant computational resources and hardware complexity to perform convolutional operations effectively.
Innovation Solution
The system employs a weight-kernel subdivider and IFM subdivider to split original weight kernels and input feature maps into sub-kernels and sub-maps, respectively, allowing for convolution with an input stride of 1, while optimizing the process using the Winograd algorithm to reduce computational needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If convolutional operations are performed with input stride greater than 1 using existing methods, then feature extraction capability is improved, but hardware complexity and computational resources increase significantly
Solution Approach 1:
The patent divides the original weight kernel into multiple sub-kernels and the input feature map into multiple sub-maps based on the input stride value. Each sub-kernel is then applied to corresponding sub-maps using standard convolution operations with stride 1, and the results are summed to produce the final output. This segmentation allows the system to achieve arbitrary stride values using only stride-1 convolution hardware, resolving the contradiction between stride capability and hardware complexity.
2Adaptability or versatility
If convolutional operations are performed with input stride greater than 1 using existing methods, then feature extraction capability is improved, but computational resources increase significantly
Solution Approach 1:
The patent segments the convolution operation into multiple smaller operations using sub-kernels and sub-maps. By dividing the original kernel into sub-kernels based on stride values and applying them to corresponding sub-maps, the system reduces the computational burden of each individual operation. The segmented approach allows efficient utilization of computational resources while maintaining the ability to process with arbitrary input strides.
3Productivity
If hardware is designed to support input stride greater than 1 directly, then convolutional operation efficiency is improved, but hardware simplicity is reduced
Solution Approach 1:
Instead of designing hardware that directly supports arbitrary stride values, the patent inverts the approach by designing hardware that only supports stride-1 convolution operations. The desired arbitrary stride functionality is achieved through software-based kernel and map segmentation, followed by multiple stride-1 convolution operations with result summation. This inversion resolves the contradiction by maintaining hardware simplicity while achieving stride flexibility through algorithmic transformation.
Data Source
AI summary
A convolutional layer in a convolutional neural network uses a predetermined horizontal input stride and a predetermined vertical input stride that are greater than 1 while the hardware forming the convolutional layer operates using an input stride of 1. Each original weight kernel of a plurality of sets of original weight kernels is subdivided based on the predetermined horizontal and vertical input strides to form a set of a plurality of sub-kernels for each set of original weight kernels. Each of a plurality of IFMs is subdivided based on the predetermined horizontal and vertical input strides to form a plurality of sub-maps. Each sub-map is convolved by the corresponding sub-kernel for a set of original weight kernels using an input stride of 1. A convolved result of each sub-map and the corresponding sub-kernel is summed to form an output feature map.


