Computer vision 在caffe中对通道中的元素求和

Computer vision 在caffe中对通道中的元素求和,computer-vision,deep-learning,caffe,Computer Vision,Deep Learning,Caffe,如果我有一个4-D blob,比如大小(401024300,1),我想平均第二个通道上的池并生成大小(40,1300,1)的输出,我该如何做?我认为还原层会折叠整个blob,并通过将所有其他轴中的元素相加(1之后)生成一个大小为(40)的blob。在不重新实现新层的情况下,有什么解决方法吗?我发现的唯一简单的解决方法如下。将你的斑点排列成一个形状(40300,11024)。使用还原层计算轴=-1和操作=平均值的平均值。我认为这个斑点的形状将是(40300,1)。您可能需要使用重塑在末端附加一个额

如果我有一个4-D blob,比如大小(401024300,1),我想平均第二个通道上的池并生成大小(40,1300,1)的输出,我该如何做?我认为还原层会折叠整个blob,并通过将所有其他轴中的元素相加(1之后)生成一个大小为(40)的blob。在不重新实现新层的情况下,有什么解决方法吗?

我发现的唯一简单的解决方法如下。将你的斑点排列成一个形状
(40300,11024)
。使用还原层计算轴=-1和操作=平均值的平均值。我认为这个斑点的形状将是
(40300,1)
。您可能需要使用
重塑
在末端附加一个额外的尺寸(检查是否需要),然后重新排列回形状
(40,1300,1)


您可以找到
Permute
层或的实现。我希望这能有所帮助。

谢谢,我也想过用魏的分公司。很奇怪,像这样的简单操作在caffe中不受支持。我最终实现了cuda内核,因为在这个特殊情况下它们并不复杂。你是为Wei的分支实现cuda内核还是为一个全新的层实现cuda内核?如果您计划随时共享这部分代码,请告诉我。这是一个新层,仅适用于通道维度上的池。一旦我正确地测试了它,我将在github上共享它。