当前位置:   article > 正文

步长为2的卷积 VS 步长为1的卷积 + 间隔删除(美颜BeautyGAN)_卷积层步长为1和为2的区别

卷积层步长为1和为2的区别

用以前的代码并不能实现 python、Tensorflow 同样的效果。

MatConvNet 和 Tensorflow 中的卷积,在步长为2时,并且图像长宽是偶数时,并不完全相同

比如步长为1的一个卷积结果是这样的:

  1. [[ 2. 0. 2. 4.]
  2. [ 1. 4. 4. 3.]
  3. [ 4. 3. 5. 9.]
  4. [ 3. 4. 6. 2.]]

步长为2的一个卷积结果可以是:

  1. [[ 2. . 2. .]
  2. [ . . . .]
  3. [ 4. . 5. .]
  4. [ . . . .]]

由于跳步的位置不同也可以是:

  1. [[ . . . .]
  2. [ . 4. . 3.]
  3. [ . . . .]
  4. [ . 4. . 2.]]

这两个结果显然是不同的。

由于我的卷积代码是从 MatConvNet 中抄来的,所以这里用

<步长为1的卷积 + 间隔删除> 来代替 <步长为2的卷积>

2步长卷积:

  1. /*2步长卷积*/
  2. wid=wid/2;hei=hei/2;
  3. if(ConvX->输出维度 != 目标->depth || 目标->width != wid || 目标->height != hei)
  4. Resize卷积层(*目标,wid,hei,ConvX->输出维度);
  5. pad=ConvX->核宽/2;
  6. vl_nnconv(源,目标,ConvX ,2,2,pad,pad,pad,p
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/787229
推荐阅读
相关标签
  

闽ICP备14008679号