在不同阶段由具有相同名称的caffe图层使用的权重

时间:2016-07-07 20:50:28

标签: caffe

我有一个像

这样的原型
layer{
  name:"l1"
  bottom: "b1"
  top: "t1"
  include{
    phase: TRAIN
  }
}
layer{
  name:"l1"
  bottom: "b1"
  top: "t2"
  include{
    phase: TEST
  }
}

有两层用 同名
不同的blob
不同阶段

测试阶段使用的重量是多少?
1.)在训练阶段学到的重量(因为各层有相同的名称)
2.)随机初始权重

1 个答案:

答案 0 :(得分:1)

将尝试在试验阶段使用在列车阶段学到的重量。

但如果不满足以下2个条件中的任何一个,则会发生错误以停止测试:

  1. 两层blob的数量相等
  2. 两层blob的形状(每个维度的大小)是一致的
  3. 实际上,测试网中的图层将始终尝试从训练网中具有相同名称的图层复制权重,并检查包含权重的斑点的数量和形状,以确保它将使用适当的权重。

    详细信息可以在"template void Net::ShareTrainedLayersWith(const Net* other)"函数中找到,该函数将由测试网络对象调用,以便在测试开始时从受过训练的网络中复制权重。