【小记】Caffe layer:Eltwise

Eltwise Layer

  • Layer type: Eltwise
  • Doxygen Documentation
  • Header: ./include/caffe/layers/eltwise_layer.hpp
  • CPU implementation: ./src/caffe/layers/eltwise_layer.cpp
  • CUDA GPU implementation: ./src/caffe/layers/eltwise_layer.cu

Parameters

  • Parameters (EltwiseParameter eltwise_param)
  • From ./src/caffe/proto/caffe.proto)

Eltwise层介绍

Eltwise 层的主要作用是对两个 blob 按位置做数据融合,其融合操作有三个:product(点乘), sum(相加减) 和 max(取最大值),其中 sum 是默认操作。

(1)element_wise A+B: A 和 B 的对应元素相加

layer 
{
  name: "eltwise_layer"
  type: "Eltwise"
  bottom: "A"
  bottom: "B"
  top: "diff"
  eltwise_param {
    operation: SUM
  }
}

(2)element_wise A-B: A 和 B 的对应元素相减

layer 
{
  name: "eltwise_layer"
  type: "Eltwise"
  bottom: "A"
  bottom: "B"
  top: "diff"
  eltwise_param {
    operation: SUM
    coeff: 1
    coeff: -1
  }
}
  • coeff 参数只对 SUM 操作起作用。有多少个 bottom 就有多少个 coeff,coeff 默认为 1
  • Eltwise 层要求 bottom 层的 blob 大小一致

与Concat层比较

效果上,Eltwise 因为更直接的利用了上下文信息,所以精度提高,但是 Eltwise 的操作却增加了算法耗时,而 Concat 层虽然提高的精度没有 Eltwise 那么明显,但是训练和测试速度相对快了一点,所以应用时更看如何权衡两者能不能满足自己项目的需求。

你可能感兴趣的:(#,Caffe,深度学习)