0

Is known that the convolution has the associative property: (A*B)*C=A*(B*C), where (*) denotes the convolutional operator. In keras, perform a 2D Convolution + 2D Average Pooling (with strides=(2,2)) is less expensive that perform only one convolution with strides=(1,1). I think that this is possible applying the associative property and doing first the convolution of kernel B and C, but I'm trying achieve the same result that keras via A*(B*C) instead of (A*B)*C, where A is the image input and B and C are the kernels, but the result differs from keras.

It's really possible convolve first the kernel, K=B*C and finally convolve the input with K: A*K?

Diego Ruiz
  • 187
  • 2
  • 11

1 Answers1

0
  • (A * B) * C is not equal A * (B * C)
  • (A * B) is matrix multiply but (B * C) isn't, you can't just reverse the process
BlackLotus
  • 318
  • 4
  • 12