# why do we need to flip kernel before using conv2 in CNN?

9 ビュー (過去 30 日間)
Mohammedee 2022 年 7 月 4 日

We know that function conv2 can prefom convolution (between image and kernel ) and flip kernel before apply convolution to image according to defnition of convolution
y = conv2(image, kernel, 'valid')
.However, in convolution neural network(CNN) ,they flip the kernel before the use conv2
kernel = rot90(kernel, 2);
y = conv2(image, kernel, 'valid');
which means the kernel flip twice and this correlation not convolution why
##### 3 件のコメント表示非表示 2 件の古いコメント
Mohammedee 2022 年 7 月 4 日
Look to this code..kernel rotated 180 Then pass it to conv2 And we know that conv2 will rotate kernel 180 again... This mean kernel rotated twice 180..

サインインしてコメントする。

### 回答 (1 件)

Matt J 2022 年 7 月 4 日

The field of neural networks uses the term "convolution" loosely. There are other differences as well. We also know that in traditional DSP theory, convolution operations don't contain a stride parameter, but in the NN world, they do.
##### 5 件のコメント表示非表示 4 件の古いコメント
Matt J 2022 年 7 月 11 日 21:55
If you use conv2(image, W), MATLAB will first "flip" W, reversing its rows and columns
Yes, conv2 will flip W internally and that is the correct thing for it to do, because that is the way convolution is defined. This definition ensures that conv2(1,W) = W. Example:
W=[1 2;3 4]
W = 2×2
1 2 3 4
conv2(1,W)
ans = 2×2
1 2 3 4
If you were to flip W manually, prior to giving it to conv2, it would mess this up:
conv2(1,rot90(W,2))
ans = 2×2
4 3 2 1

サインインしてコメントする。

R2021a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!