A processor-implemented method of performing image recognition by using a neural network, the method comprising: obtaining intermediate pooling results, respectively corresponding to sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) obtained by decomposing an original pooling kernel (610, 710, 810), by performing a pooling operation on pixels of an input image included in a current window in an input feature map using the sub-pooling kernels (811, 812, 813); obtaining a final pooling result corresponding to the current window by post-processing the intermediate pooling results; and determining an output pixel value of an output feature map, based on the final pooling result, wherein the current window is determined according to the original pooling kernel having been slid, according to a raster scan order, in the input feature map, wherein each of the sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) is a 1-dimensional, 1D, kernel that has a height of 1, respectively comprising only row elements of the original pooling kernel (610, 710, 810), and a total number of the 1 height sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) obtained by decomposing from the original pooling kernel (610, 710, 810) corresponds to a height of the original pooling kernel, and wherein an intermediate pooling result obtained by a sub-pooling kernel from among the sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) with respect to the current window is shared with at least one other window in the input feature map by respectively storing the intermediate pooling results that correspond to a same window in memory cells comprising memory addresses (1251, 1252, 1253) of a same column and different rows in a share line buffer. obtaining intermediate pooling results, respectively corresponding to sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) obtained by decomposing an original pooling kernel (610, 710, 810), by performing a pooling operation on pixels of an input image included in a current window in an input feature map using the sub-pooling kernels (811, 812, 813); obtaining a final pooling result corresponding to the current window by post-processing the intermediate pooling results; and determining an output pixel value of an output feature map, based on the final pooling result, wherein the current window is determined according to the original pooling kernel having been slid, according to a raster scan order, in the input feature map, wherein each of the sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) is a 1-dimensional, 1D, kernel that has a height of 1, respectively comprising only row elements of the original pooling kernel (610, 710, 810), and a total number of the 1 height sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) obtained by decomposing from the original pooling kernel (610, 710, 810) corresponds to a height of the original pooling kernel, and wherein an intermediate pooling result obtained by a sub-pooling kernel from among the sub-pooling kernels (510, 520, 530, 611, 612, 613, 711, 712, 713, 811, 812, 813) with respect to the current window is shared with at least one other window in the input feature map by respectively storing the intermediate pooling results that correspond to a same window in memory cells comprising memory addresses (1251, 1252, 1253) of a same column and different rows in a share line buffer.