Image processing Caffe将AlexNet的预训练权重复制到具有两个AlexNet的自定义网络

Image processing Caffe将AlexNet的预训练权重复制到具有两个AlexNet的自定义网络,image-processing,neural-network,deep-learning,caffe,convolution,Image Processing,Neural Network,Deep Learning,Caffe,Convolution,我试图建立一个包含两个图像输入的网络。每幅图像都将通过一个网络,同时进行后期融合,融合后输出。我用下面的图表来说明我需要什么(ps:对不起,我的英语不是很好) 我的网络在caffe prototxt模型定义文件中定义,该文件包含精确的AlexNet,该AlexNet在池5中定义了两次。对于第一个网络,层的名称与中相同,而对于第二个网络,我在每个层名称上添加了一个“_1”后缀。 我的问题是如何复制预先设定的重量 例如:每个网络的卷积层1如下所示。请注意,对于conv1,可以轻松复制预训练权重,因

我试图建立一个包含两个图像输入的网络。每幅图像都将通过一个网络,同时进行后期融合,融合后输出。我用下面的图表来说明我需要什么(ps:对不起,我的英语不是很好)

我的网络在caffe prototxt模型定义文件中定义,该文件包含精确的AlexNet,该AlexNet在池5中定义了两次。对于第一个网络,层的名称与中相同,而对于第二个网络,我在每个层名称上添加了一个“_1”后缀。 我的问题是如何复制预先设定的重量

例如:每个网络的卷积层1如下所示。请注意,对于
conv1
,可以轻松复制预训练权重,因为层名称与预训练模型中的层名称相同。但是,对于
conv1_1
而言,相同的重量不同,因此我恐怕无法复制预训练重量?或者,即使图层名称不同,也有办法做到这一点吗

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data1"
  top: "conv1"
  param {
    lr_mult: 0
    decay_mult: 1
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  convolution_param {
    num_output: 96
    kernel_size: 11
    stride: 4
    weight_filler {
      type: "gaussian"
      std: 0.01
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}


layer {
  name: "conv1_1"
  type: "Convolution"
  bottom: "data2"
  top: "conv1_1"
  param {
    lr_mult: 0
    decay_mult: 1
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  convolution_param {
    num_output: 96
    kernel_size: 11
    stride: 4
    weight_filler {
      type: "gaussian"
      std: 0.01
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}

我假设您正在尝试在初始化后对整个网络进行微调,否则您可以简单地使用从AlexNet提取的特征,并在FC层开始培训。对于微调,您需要复制第一个网络(具有相同名称的网络)上的权重,并让第二个网络与第一个网络共享权重。看一看线程。或者更确切地说是埃文·谢尔玛的回复。

我做了类似的事情,在这里你可以看到暹罗网络和相同的AlexNet。这里是

是的,我正在尝试微调,而不仅仅是特征提取。感谢您指出这些有用的链接。我仍然不明白政府如何分担这些重量。你能举几个例子吗。此外,我不知道它被称为暹罗网。如果你看一下对我指出的评论的回复,有OP发布的文件。你能用mnist数据集训练两个相同的AlexNet吗@您是在自己的数据集上还是在mnist数据集上进行培训@kcc__我正在使用我自己的大约80K图像数据集。我还没受过训练。你试过MNIST了吗?当我运行caffe时,我的GPU会关闭,我想这是由于PSU,所以我订购了一个新的。我目前正在运行四个实验。1.使用mnist数据集上的LeNet的暹罗网络,2。在mnist数据集上使用AlexNet的暹罗网络,3。在我自己的数据集上使用LeNet的暹罗网络,2。在我自己的数据集上使用AlexNet的暹罗网络。我和AlexNet没有很好的集群@我想用mnist数据集上的LeNet计算暹罗网络的精度。你知道我们怎么做吗@kcc__