# Eff-PCNet: An Efficient Pure CNN Network for Medical Image Classification
## 3 Methodology
### M2C Module  
Inspired by the long range modeling capability of Vit, large kernel convolution algorithms have been widely studied and adopted in recent years to expand the receptive field and improve the model performance, e.g., the well-known work ConvNext [41] employs a \(7\times 7\) depth convolution. Although this depth operator consumes only a small number of FLOPs, it greatly impairs the efficiency of the model on powerful computing devices due to the high cost of memory access. Although the use of small convolutional kernels can be effective in reducing complexity and speedup, it also significantly degrades the model performance. To address this problem, we propose the M2C module, whose specific structure is shown in Figure 4 (the feature map dimension is taken as stage 4). Inspired by inceptionnext, our M2C module divides the feature map into four parallel branches along the channel dimension by a certain ratio factor. One of the branches is an identity mapping; the remaining three branches utilize deep convolution at different scales to complete the feature extraction and are then concatenated along the channel dimensions to fuse the multi-scale and multi-dimensional feature information. In order to reduce the computational spending of the module, we choose to not perform deep convolution operations on all the channels but select some of the channels to perform deep convolution operations. Specifically, for the input feature map \(X_{in}\in\mathbb{R}^{C\times H\times W}\) in the M2C module, we first divide the input channels into two parts, 24 and 40, according to the ratio factor a = 0.375. Among them, the part with 40 channels is kept unchanged and denoted as an identity mapping branch, and the rest of the parts with 24 channels are divided into three branches for deep convolution operation. In particular, for the three parallel branches where deep convolution is performed, we set the kernel functions for deep convolution as \(3\times 3\), \(1\times\) K, and K \(\times 1\), respectively. After the multi-branch and multi-scale deep convolution operation, we concatenate the feature maps generated from the four different channels along the channel dimensions. This process can be formulated as follows:  
\[\begin{array}{l}(X_{1},X_{2},X_{3},X_{4})=split(X)=(X_{\frac{C}{8}},X_{ \frac{C}{8}},X_{\frac{C}{8}},X_{\frac{5C}{8}}),\\ X_{1}^{\prime}=DWConv_{k\times k}(X_{1}),\\ X_{2}^{\prime}=DWConv_{1\times k\times 5}(X_{2}),\\ X_{3}^{\prime}=DWConv_{k\times 5\times 1}(X_{3}),\\ X_{4}^{\prime}=(X_{4}),\\ Y=Concat(X_{1}^{\prime},X_{2}^{\prime},X_{3}^{\prime},X_{4}^{\prime}), \end{array} \tag{3}\]  
where \(X_{1}\),\(X_{2}\),\(X_{3}\),\(X_{4}\) denotes the division of the input into four parallel branches along the channel dimension. \(C\) is the number of channels in the input. \(k\) denotes the small square kernel size set to 3 by default, and \(ks\) denotes the banded kernel size set to 11 by default. _Concat_ is an operation that concatenates the output of each branch.  
The M2C module divides the feature map into four parallel branches along the channel and utilizes convolution kernels of different scales to perform deep convolution operations, and this multi-branch multi-scale operation effectively replaces the large kernel convolution such as \(7\times 7\). It reduces the computational cost of the module and at the same time fuses the feature information between different channels, thus obtaining richer feature information.