首页 > 解决方案 > 为什么置换层会因就地操作而失败?

问题描述

我尝试将Permutelayer 与 intel caffe 一起使用,就地操作的代码因topblob 形状错误而失败:

layer {
  name: "conv4_3_norm_mbox_conf_perm"
  type: "Permute"
  bottom: "per_blob"
  top: "per_blob"
  permute_param {
    order: 0
    order: 2
    order: 3
    order: 1
  }
}

以不同bottomtop名称成功。

为什么就地操作会失败?

标签: caffe

解决方案


显然,值在排列过程中被弄乱了。要交换两个变量,您需要一个临时缓冲区(除非您使用 XOR 技巧或其他东西)。


推荐阅读