日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

【深度學習】YOLOv5斷點訓練——中斷后繼續訓練

作者:別出BUG求求了 更新時間: 2023-11-15 編程語言

YOLOV5-斷點訓練/繼續訓練

情況描述:

1.訓練過程中中斷了,繼續訓練
2.訓練完了,但是未收斂,在這個基礎上,還想用這個權重、學習率等參數繼續訓練多一些批次

1. 訓練過程中中斷了,繼續訓練

斷電、或者什么原因中斷了,比如設定epoch為200,但是在90這里中斷了,想從斷點這里繼續 訓練到 200個epoch
直接在trainds.py設置參數–resume的defualt=True即可(在代碼 517行附近)

1.parser.add_argument('--resume', nargs='?', const=True, default=True, help='resume most recent training')

2. 訓練完原有epoch,發現沒有收斂,想繼續訓練

訓練完原有epoch后,但還繼續訓練,比如設置epoch為30,已經訓練完了,但是沒有收斂,想使用訓練了30 epoch的權重繼續訓練40個epoch, 總共就是70個epoch

**注意:**不是直接在train.py設置weight參數為訓練好的權重(last.pt),然后設置epoch為70,這樣不行,因為學習率等超參數啟動時還是按照默認的。(自己把一些超參數設置好也可以,比較麻煩)
在train.py代碼里面設置就可以使用原有30 epoch的權重后繼續訓練到40epoch

  • step1:

先將–resume的defualt改為True,再將–epochs設為想要繼續訓練到的epochs,即defualt=70(在trainds.py代碼的513行附近)

parser.add_argument('--epochs', type=int, default=70)
  • step2:

在trainds.py文件中,按下Ctrl+F搜索Epochs定位到大概197行的位置,做以下兩處修改:

添加一行代碼:ckpt[‘epoch’] = 30
修改代碼:start_epoch = ckpt[‘epoch’](后面不加1)
注意:這兩處修改是為了斷點訓練,如果不再需要斷點訓練,請將這兩處修改都還原。

在這里插入圖片描述

  • step3:

在trainds.py文件中,按下Ctrl+F搜索replace定位到大概565行的位置,做以下兩處修改:

如圖添加一行代碼:init_epochs = opt.epochs(記錄最開始由epochs參數設定的數值70,因為replace這行代碼,將epochs替換成了原始的epochs數值30)
修改代碼:如圖進行添加,reinstate恢復成設定的epochs
在這里插入圖片描述
做完以上3個修改,訓練就會從第30個epoch的基礎上進行繼續訓練到70個epoch,和直接設置epoch為70一樣

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/weixin_39589455/article/details/128461081

  • 上一篇:沒有了
  • 下一篇:沒有了

相關推薦

欄目分類
最近更新