Input 具有不同维度的多个输入的Caffe deploy.prototxt

Input 具有不同维度的多个输入的Caffe deploy.prototxt,input,neural-network,deep-learning,caffe,dimensions,Input,Neural Network,Deep Learning,Caffe,Dimensions,我在Caffe中有一个网络,它接受多个图像输入(可能是不同维度的),并将它们用作网络初始部分的单独blob 在培训阶段,我按照文档中的建议创建了一个HDF5数据库来实现这一点 但是,对于部署阶段,我需要用输入层替换培训阶段的数据层,并指定输入blob的维度 对于单个blob,这是通过input_param的shape属性完成的。在这种情况下,如果我有多个水滴,可能是不同尺寸的,我该怎么做 谢谢。如果仔细观察,您会发现input和input\u-shape具有重复的属性: 这意味着您可以有几个这样

我在Caffe中有一个网络,它接受多个图像输入(可能是不同维度的),并将它们用作网络初始部分的单独blob

在培训阶段,我按照文档中的建议创建了一个HDF5数据库来实现这一点

但是,对于部署阶段,我需要用输入层替换培训阶段的数据层,并指定输入blob的维度

对于单个blob,这是通过input_param的shape属性完成的。在这种情况下,如果我有多个水滴,可能是不同尺寸的,我该怎么做

谢谢。

如果仔细观察,您会发现
input
input\u-shape
具有
重复的属性:

这意味着您可以有几个这样的条目:

name: "AnAmazingNetWithMultipleInputs_ThankYouShai_IwillForeverBeInYourDebt"
input: "first_input_1x3x127x127"
input_shape { dim: 1 dim: 3 dim: 127 dim: 127 }
input: "second_input_2x4x224x224"
input_shape { dim: 2 dim: 4 dim: 224 dim: 224 }
# I hope you can take it from here ;)

如果您仔细查看的相关部分,您会注意到这种形式的“输入形状声明”已被弃用。
更好的方法是使用图层:


如果您觉得更容易理解/阅读,还可以为每个输入设置不同的
“输入”
层。

谢谢!我应该考虑使用多个输入层!一个问题:如果我反复使用top和shape,那么每个top后面必须有一个shape吗?它是如何建立映射的?我想按照出现的顺序谢谢你,@Shai,这很有效。然而,似乎有一个小错误:我认为形状是输入参数的属性,而不是直接的输入层。我在第二个示例中尝试使用它时遇到了一个错误,通过使用input_param进行了更正。
name: "AnAmazingNetWithMultipleInputs_ThankYouShai_IwillForeverBeInYourDebt"
input: "first_input_1x3x127x127"
input_shape { dim: 1 dim: 3 dim: 127 dim: 127 }
input: "second_input_2x4x224x224"
input_shape { dim: 2 dim: 4 dim: 224 dim: 224 }
# I hope you can take it from here ;)
layer {
  type: "Input"
  name: "one_input_layer"
  top: "first_input_1x3x127x127"
  shape { dim: 1 dim: 3 dim: 127 dim: 127 }
  top: "second_input_2x4x224x224"
  shape { dim: 2 dim: 4 dim: 224 dim: 224 }
}