卷积实现

设input tensor的shape为N, c_in, h_in, w_in,output tensor的shape为N, c_out, h_out, w_out.
kernel size为k_h, k_w

forward:
分为两步:

  1. img2col:
    由input tensor计算column tensor,shape为c_in * k_h * k_w, N * h_out * w_out
  2. weight与column相乘:
    weight的shape为 c_out, c_in, k_h, k_w,与column矩阵相乘后得到shape为c_out, N * h_out * w_out的tensor,转置后得到output tensor。

backward:

  1. 求得output的grad之后,计算得到column的梯度。
  2. col2img:
    由column的梯度求得input的梯度。

你可能感兴趣的:(卷积实现)