Neural network 如何理解Caffe重塑参数和Keras中的重新实施?

Neural network 如何理解Caffe重塑参数和Keras中的重新实施?,neural-network,keras,caffe,reshape,layer,Neural Network,Keras,Caffe,Reshape,Layer,我不知道如何解释重塑参数。这里表示0表示复制,-1表示推断。当-1不是最后一个参数时是否相同?有人能帮我理解吗 layer { name: "Layer1" type: "Reshape" bottom: "Layer1" top: "Layer2" reshape_param { shape { dim: 0 dim: 2 dim: -1 dim: 0 } } 此外,如果我想在Keras中实现相同的层,我是否也使用Ke

我不知道如何解释重塑参数。这里表示0表示复制,-1表示推断。当-1不是最后一个参数时是否相同?有人能帮我理解吗

 layer {
  name: "Layer1"
  type: "Reshape"
  bottom: "Layer1"
  top: "Layer2"
  reshape_param {
  shape {
      dim: 0
      dim: 2
      dim: -1
      dim: 0
}
}
此外,如果我想在Keras中实现相同的层,我是否也使用Keras重塑层,如:

Layer2 = K.reshape(Layer1,(-1,input_dim)) 

这意味着,考虑到您有一个shape
(a、b、c、d、e)
的输入,您的输出将具有shape:

(a, 2, b * c * e / 2, d)
a
d
从上一层复制。值2是强制的,值
-1
计算保持与输入相同的元素数所需的任何值

在Keras中,由于不更改第一个维度(批次大小),因此只需要一个常规的重塑层,该层将忽略批次大小:

Reshape((2,-1,youMustKnowThis)) 
在<代码>顺序模型中,只需添加以下层:

sequentialModel.add(Reshape((2,-1,youMustKnowThis))
在功能API
模型中,传递上一层的输出:

newShaped = Reshape((2,-1,youMustKnowThis))(outputOfPreviousLayer)
请参见关于
“重塑”
层。