Neural network 如何重塑咖啡馆中的一团?

Neural network 如何重塑咖啡馆中的一团?,neural-network,reshape,deep-learning,caffe,Neural Network,Reshape,Deep Learning,Caffe,如何在Caffe中将形状nxcxhxw的水滴重塑为nx1x(C*H)xw 我想做一个卷积层,它的权重在通道之间是相同的 我想到的一种方法是将形状的底部斑点重塑为nxcxhxw到nx1x(C*H)xw,并在其上放置一个卷积层。但我只是不知道如何重塑一团 请帮帮我,谢谢。不确定这是否符合您的规格,但Caffe确实有压扁层。水滴从n*c*h*w变为n*(chw)*1*1 请参见Caffe现在为您提供了一个重塑层。 正如所指出的,您可以使用“重塑”图层。Caffe在定义输出形状方面非常灵活。 见: 在你

如何在Caffe中将形状
nxcxhxw
的水滴重塑为
nx1x(C*H)xw

我想做一个卷积层,它的权重在通道之间是相同的

我想到的一种方法是将形状的底部斑点重塑为
nxcxhxw
nx1x(C*H)xw
,并在其上放置一个卷积层。但我只是不知道如何重塑一团


请帮帮我,谢谢。

不确定这是否符合您的规格,但Caffe确实有压扁层。水滴从n*c*h*w变为n*(chw)*1*1


请参见

Caffe现在为您提供了一个重塑层。

正如所指出的,您可以使用
“重塑”
图层。Caffe在定义输出形状方面非常灵活。
见:

在你的情况下,我想你会有这样一层:

layer {
  name: "my_reshape"
  type: "Reshape"
  bottom: "in"
  top: "reshaped_in"
  reshape_param { shape: {dim: 0 dim: 1 dim: -1 dim: 0 } }
}

另请参见。

如果我正确理解您的最终目标,Caffe的卷积层已经可以使用公共/共享过滤器进行多输入输出卷积,如:

layer {
  name:   "conv"
  type:   "Convolution"
  bottom: "in1"
  bottom: "in2"
  bottom: "in3"
  top:    "out1"
  top:    "out2"
  top:    "out3"
  convolution_param {
    num_output : 10  #the same 10 filters for all 3 inputs
    kernel_size: 3        
  }
}
假设您将所有流分割(切片层可以做到这一点),最后,如果需要,您可以将它们与concat或eltwise层合并


这避免了对blob进行整形、卷积,然后再对其进行整形的需要,这可能会在边缘附近引入交叉信道干扰。

这也可以通过blob的类方法
整形(const vector&shape)
实现吗?类方法
重塑
和重塑层之间有什么区别?
layer {
  name:   "conv"
  type:   "Convolution"
  bottom: "in1"
  bottom: "in2"
  bottom: "in3"
  top:    "out1"
  top:    "out2"
  top:    "out3"
  convolution_param {
    num_output : 10  #the same 10 filters for all 3 inputs
    kernel_size: 3        
  }
}