簡體   English   中英

如何從頭開始訓練 ssd-mobilenet

[英]How to train a ssd-mobilenet from scratch

如何在沒有轉移學習的情況下從 tensorflow 對象檢測模型動物園重新訓練 ssd-mobilenet-v2。 我的意思是每個重量,而不僅僅是最后一層。

我是否必須構建網絡架構和用於訓練的腳本,或者我可以對 .config 文件或有關訓練自定義對象檢測器的文檔中指定的 train.py 腳本進行一些小的更改。

這種方法會提高/惡化網絡的准確性/損失嗎?

在此先感謝您的幫助。

首先,默認情況下所有參數都被重新訓練,除非你在 pipeline.config 中另外定義。

有一個名為pipeline.config的文件,可用於控制訓練過程。 https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_mobilenet_v2_coco.config

在配置文件中,您可以定義是否要從檢查點加載模型參數。 您可以選擇多種操作: 1. 加載主干的參數(即您的移動網絡特征提取器) 2. 加載預測和回歸頭的參數。 3.不要加載參數(通常你不會喜歡這個——訓練和收斂需要更長的時間)

更具體地說,您應該關注 pipline.config 中的以下節點:

  1. Fine_tune_checkpoint - 要用於進行遷移學習的原始模型的檢查點。
  2. fine_tune_checkpoint_type - 定義檢查點是否為分類/檢測
  3. load_all_detection_checkpoint_vars - 如果為True - 那么來自fine_tune_checkpoint 的參數將在訓練開始前加載。
  4. freeze_variables - 如果您不想重新訓練所有參數,您可以定義要凍結的變量。 (在他們的原型文件object_detection/protos/train.proto 中查看這些的完整文檔 - https://github.com/tensorflow/models/blob/master/research/object_detection/protos/train.proto

例子:

153   fine_tune_checkpoint: "<PATH-TO-DOWNLOADED-CKPT>/model.ckpt"
154   fine_tune_checkpoint_type: detection
155   load_all_detection_checkpoint_vars: true

所有參數都將被加載和重新訓練。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM