【问题标题】:How to train a caffemodel on our own dataset?如何在我们自己的数据集上训练一个 caffemodel?
【发布时间】:2016-03-29 13:17:24
【问题描述】:

我尝试使用预训练的 bvlc_reference_caffenet.caffemodel 从图像中识别对象。对于仅包含单个对象的图像,我得到了很好的结果。对于具有多个对象的图像,我从预测中删除了argmax() 术语,它给出了具有最大概率的类标签。

不过,我得到的标签的准确性非常低。因此,我正在考虑在我自己的数据集(包含具有多个对象的图像)上训练相同的 caffemodel。我应该如何进行?有没有办法用不同的数据集重新训练预训练的 caffemodel

【问题讨论】:

  • 目前尚不清楚您是要训练网络进行单标签分类还是多标签分类。对于多标签分类,请使用 Caffe 的 PR #523。

标签: machine-learning neural-network deep-learning caffe conv-neural-network


【解决方案1】:

您所追求的称为“微调”:采用为任务 A 训练的深度网络,重用其权重并重新训练以完成任务 B。
您可以从this tutorial 开始,但您只需通过谷歌搜索“finetune caffe 模型”即可找到更多信息。

您可能还对 this post 感兴趣,了解如何使用每个输入图像训练多个类别的 caffe。

【讨论】:

  • 如果我要使用 CPU 而不是 GPU,预训练的 caffemodel 需要多长时间来进行微调?
  • 取决于您运行的迭代次数
  • 我现在正在使用非常少的数据集进行训练。我应该进行多少次迭代?
  • @foo 需要多少次迭代才能覆盖一次新的训练集(一个“epoch”)?
  • 我的solver.prototxt 文件是这样的:`net: "/home/foo/Project/train_val.prototxt" test_iter: 1000 test_interval: 1000 base_lr: 0.01 lr_policy: "step" gamma: 0.1 stepsize: 100000 显示:20 max_iter:450000 动量:0.9 weight_decay:0.0005 快照:10000 快照前缀:“/home/foo/caffe/models/bvlc_reference_caffenet/caffenet_train”solver_mode:CPU`
猜你喜欢
  • 2017-03-31
  • 1970-01-01
  • 2019-11-10
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
相关资源
最近更新 更多