LIGHTSPEEUR® 2801S之目標檢測SSD模型訓練討論

LIGHTSPEEUR® 2801S之目標檢測SSD模型訓練討論

延續上一篇日志,在訓練前修改run_ssd_training.sh讓訓練過程中會使用到預訓練模型(pre-trained model)權重。最近我試著照原廠方式不使用預訓練模型,並把問題丟給廠商:

照GTI的方式訓練SSD,10萬次Loss還是不大會降低;後來發現run_ssd_training.sh內並沒有用到pre-train的model;我之前是有在run_ssd_training.sh加 –weights=$ssd,loss會下降到1 ~ 2間

得到的回覆於下:

只用参照prototxt文件中卷积层的方式定义自己的网络就行了,其他地方同标准的ssd训练方法一样

因此花了些時間瞭解SSD模型的結構,過程中參考這本書:
在这里插入图片描述
並且對照標準SSD模型,發現它會用到VGG預訓練模型;另外找到的Intel最佳化後的Caffe SSD模型也是用到相同的預訓練模型。正因如此,我認為過程中參照預訓練模型(pre-trained model)權重才能正確的進行SSD模型訓練。接下來討論2801s SSD預訓練模型的結構。

在run_ssd_training.sh中關於預訓練模型的內容,參考下圖:
在这里插入图片描述
VGG的部份是用2801s來加速,其它部份(VGG以外的卷積層)應該是在主機端(Host)上運算。進一步分析後整理如下圖所示:
在这里插入图片描述
2801s SSD模型從輸入端看起,與標準的SSD300模型不同,輸入與VGG-16模型一樣是240 * 240而非300 * 300;在VGG-16的卷積層使用的是Quantization(量化)運算,除此之外的結構與標準VGG-16模型一致;接續的ip6與ip7(標準模型為FC6/ Conv6與FC7/Conv7)層是原先VGG16模型全連接 (full connect或dense) 層,並將其改為卷積層(浮點數運算);而接著的Conv6(Conv8)、Conv7(Conv9)、Conv8(Conv10)層也是卷積層(浮點數運算),但標準模型的Conv9(Conv11)層並沒有在其中。此外,標準模型中Normalize層是在VGG的Conv4_3層,可能是配合2801s晶片加速的關係,Normalize層在2801s SSD模型中被改到ip7層(ip7_norm)。預訓練模型Quantization(量化)運算的權重來自於ssd_quant_pretrain.caffemodel,其餘的權重來自SSD_typ_float.caffemodel;預訓練模型的建立是依據deploy_typ_quant.prototxt定義,程式碼則為copy_fc_param.py。

其實訓練完成的模型與預訓練模型結構上是相同的。經過上述分析就會發現2801s SSD模型架構上有不少地方是與標準SSD模型並不一致,連帶的也會影響到模型的超參數(hyperparameters)設定, 超參數的調整是需要經驗的。若有2801s SSD模型訓練或參數調整的需求,可以聯絡On-Device AI Co., Ltd.取得進一步的協助。

若派人工智能为AI 智能家居用户提供了AI方案与一站式技术支持,欢迎关注合作!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值