专栏首页10km的专栏SSD(Single Shot MultiBox Detector)的solver参数 test_initialization的说明塈解决训练时一直停在Iteration 0的问题

SSD(Single Shot MultiBox Detector)的solver参数 test_initialization的说明塈解决训练时一直停在Iteration 0的问题

前阵子训练过一次SSD模型,训练后发现数据集有问题,修改了数据集后,今天准备再做一次SSD训练时,如下执行训练代码:

python ./examples/ssd/ssd_pascal.py 

到了开始迭代时,一直停在Iteration 0,进行不下去。。。

对于还不完全熟悉SSD代码结构的我来说,遇到这个问题当时脑子一下子就懵了,一时不知是哪里出了问题。因为我之前已经成功做过一次训练,此次训练只是训练数据集不一样,并没对训练参数和模型做任何修改,怎么就不对了呢?

最后想到我在第一次训练的时候,修改过solver参数中的test_initialization的值(定义在$ssd_root/examples/ssd/ssd_pascal.py line 388),会不会是它的问题呢? 于是尝试将之修改为默认值False,再开始训练,则一切正常。

原因分析

我们知道,训练过程一般都比较漫长,所以caffe在设计的时候允许中断训练,当Ctrl-c中断训练时,Caffe会自动保存一份训练快照。 如下图,会在$ssd_root/models对应模型文件夹下生成代表当前完成的迭代次数的快照文件,后缀为_32和_47的文件分别代表32次和47次迭代时的快照

solver参数中的test_initialization表示是否可以用上次保存的snapshot来继续训练,如果为True,则下次开始训练的时候,caffe会自动从这个目录下加载最近一次迭代的模型,继续训练,以节省时间。 如果是False,则会从0开始重新迭代。所以这个参数的默认值是False。 我在第一次训练的时候,将这个参数改为了True。 这样听起来没啥问题,但如果你重新开始训练的时候,$ssd_root/models对应模型的文件夹下并没有任何快照,如test_initialization被设置为True,因为caffe找不到快照文件,就会导致迭代一直停留在Iteration 0。所以这种情况下应该把test_initialization置为False,训练就能正常进行下去了。 根据这个现象,我觉得这应该是训练代码的一个bug,代码的健壮性有问题,但因为对Caffe代码结构还不熟悉,所以我是没办法修改它,期待官方版本改进。

参考资料

《Caffe代码解读(四):solver_param》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 利用 Flask+Redis 维护 IP 代理池

    目前有很多网站提供免费代理,而且种类齐全,比如各个地区、各个匿名级别的都有,不过质量实在不敢恭维,毕竟都是免费公开的,可能一个代理无数个人在用也说不定。所以我们...

    崔庆才
  • MongoDB 复制集原理

    MongoDB通过一张特殊的表 local.oplog.rs 存储 oplog,该表的特点是固定大小,满了会删除最旧记录插入新记录,而且只支持append操作,...

    孔德雨
  • 谈谈 KV 存储集群的设计要点

    不同于无数据的逻辑层框架,KV 存储系统的架构设计会更复杂、运维工作更繁琐、运营过程中可能出现的状况更多、bug 收敛时间会更长。一句话:团队自己做一个 KV ...

    廖念波
  • MySQL 内核深度优化

    MYSQL 数据库适用场景广泛,相较于 Oracle 、DB2 性价比更高,Web 网站、日志系统、数据仓库等场景都有 MYSQL 用武之地,但是也存在对于事务...

    腾讯云数据库团队
  • 【开源访谈】黄东旭:“无人区”的探索者, TiDB 的前行之路

    > 日前,我司联合创始人兼 CTO 黄东旭接受了开源中国的【开源访谈】,公开解读了 TiDB 的探索之路及未来方向。本文为专访实录~ :)

    PingCAP
  • 鹅厂上万节点大规模集群的跨城自动迁移(下)

    当上百P的数据,上万个节点的集群进行跨城迁移时,如何在有限的带宽下实现自动、高效、稳定地迁移?本文将跟你一一揭晓!

    腾讯技术工程官方号
  • 5大数据挑战正在改变数据中心的面貌

    引言:新的数据中心架构提出了新的数据挑战——数据捕获是如何驱动边缘到核心的数据中心架构的。

    全球资讯翻译官
  • 深度学习的异构加速技术(二):螺狮壳里做道场

    无论在FPGA还是ASIC设计,无论针对CNN还是LSTM与MLP,无论应用在嵌入式终端还是云端(TPU1),其构架的核心都是解决带宽问题。

    腾讯技术工程官方号
  • 即将三十,我不敢说我精通任何一项技术

    30岁后真的就要转管理?凭什么?回顾自己的技术成长之路,具体技术真心没有一样敢说精通,对于一个像我这样工作6、7年的人来说,实在有些难以启齿。

    翟志军
  • 6 个月清洗近千亿条微信支付交易记录,他们要搞什么大事情?

    2013年8月,微信红包上线。2014年春节微信红包引爆社交支付。2015年春晚红包摇一摇,推动微信红包在全国迅速普及。此后,每逢节假日或特殊日子,人们都会自主...

    腾讯技术工程官方号

扫码关注云+社区

领取腾讯云代金券