如何在pyCaffe中实现Eltwise图层

时间:2018-04-12 22:41:13

标签: python deep-learning caffe pycaffe

我正在尝试在PyCaffe中实现Eltwise图层来加总2个输入。

我的目标是在prototext中获得这个:

layer {
  name: "eltwise_sum"
  type: "Eltwise"
  bottom: "v1"
  bottom: "v2"
  top: "v1_v2_sum"
  eltwise_param { operation: SUM }
}

我无法在PyCaffe中找到有关如何执行此操作的任何文档甚至谷歌示例。

net.v1_v2_sum = caffe.layers.Eltwise( net.v1, 
                                      net.v2, 
                                      name='eltwise_sum', 
                                      param ={'operation': 'SUM'}
                                    )

然而,我一直收到错误。我怀疑这是因为没有正确指定sum操作,但我找不到任何关于如何正确执行此操作的文档?

谢谢,

2 个答案:

答案 0 :(得分:1)

答案在于caffe.proto。您在图层中包含的每个参数都列在该文件中。对于Eltwise图层,参数为operationcoeffstable_prod_grad。参数operation需要3个值012,其映射由enum EltwiseOp定义。就参数name而言,您可以在LayerParameter中找到它。我找不到任何关于此的文件。这只是你沿途学到的东西。我希望这能解决你的疑虑。

答案 1 :(得分:0)

好的,显然有一个整数对应于Eltwise执行的每个操作,1对应于sum,所以正确的实现是:

net.v1_v2_sum = caffe.layers.Eltwise( net.v1, 
                                      net.v2, 
                                      name='eltwise_sum', 
                                      operation = 1
                                    )

我通过反复试验来解决这个问题。有关如何从他们的git代码中理解这一点的更多信息,请参阅Parag S. Chandakkar的答案。