【问题标题】:an error in caffe train咖啡火车错误
【发布时间】:2017-10-03 09:43:14
【问题描述】:

大家。我想用 caffe 训练一个 5 类检测任务,使用“SSD:Single Shot MultiBox Detector”,所以我将 num_classes 从 21 更改为 6。但是,我收到以下错误:

检查失败:num_priors_ * num_classes_ == bottom[1]->channels() (52392 vs. 183372) 先验数必须与置信度预测数匹配。

我可以理解这个错误,我发现52392/6=183372/21,也就是为什么我把num_classes改成6,但是置信度预测的个数还是183372。那么如何解决这个问题。非常感谢!

【问题讨论】:

  • 您的标签是否只包含 5 个类别?
  • @malreddysid 是的,可能置信度预测的数量是作者确定的,所以对我来说不太好,所以如何解决这个问题,我只想训练一个 5 类模型。

标签: neural-network computer-vision deep-learning caffe object-detection


【解决方案1】:

由于 SSD 不仅取决于分类输出的标签数量,还取决于 BB 预测的标签数量,因此您需要在模型的其他几个位置更改 num_output
我强烈建议您不要手动执行此操作,而是使用'examples/ssd' 文件夹中提供的python 脚本。例如,您可以将line 277 in 'examples/ssd/ssd_pascal_speed.py' 更改为:

num_classes = 5 # instead of 21

然后使用此脚本提供的模型文件。

【讨论】:

  • 非常感谢你。我发现作者 LiuWei 说“在 ssd_pascal.py 的 CreatMultiBoxHead 中添加 conf_postfix="_whatever_you_like"”。但是windows caffe是用VS编译的,所以ssd_pascal.py不能用,我想修改windows的文件
  • @H.Hao 运行 python 脚本后,您将使用适当的num_output 为您创建所有 prototxt 文件(训练、测试和求解器)。您可以使用这些文件手动运行 caffe。
猜你喜欢
  • 2015-09-24
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多