属性エラー: 属性「SPPF」を取得できません

1.環境: 独自の YOLOv5-5.0 モデルをトレーニングします。

2.エラーの理由: 事前トレーニングの重みのバージョンがソース コード フレームワークと一致しません。次の Web サイトで、対応するバージョンの YOLOv5-5.0 を見つけてください。

リリース · Ultralytics/yolov5 (github.com)

5.0 未満の YOLOv5s.pt をweights フォルダーにコピーしても、上記のエラーが依然として報告されるため、YOLOv5s6.pt を対応するフォルダーにコピーすると、バグは解消されます。

: 対応する事前トレーニングの重みをダウンロードする方法があります。util/ フォルダーの下にある google_utils.py ファイルの対応する動作を変更します。 response=requests.get(f'https://api.github.com/repos/ {repo}/releases /tags/v5.0').json()

3. github公式サイトの説明によると、

  • YOLOv5-P5 モデル (v4.0 リリースと同じアーキテクチャ):  ストライド 8、16、32 の 3 つの出力レイヤーP3、P4、P5、トレーニング済み--img 64
  • YOLOv5-P6 モデル:  ストライド 8、16、32、64 でトレーニングされた 4 つの出力レイヤーP3、P4、P5、P6--img 1280

YOLOv5-P5 のネットワーク構造は 3 つの出力層を備えた YOLOv5-4.0 のネットワーク構造に似ていますが、YOLOv5-P6 には 1 つ多くの出力層があり、より大きなターゲットの検出効果が向上していることがわかります。

4. 別の方法: 別の解決策は、プロジェクトのソース コードを変更することです。つまり、model/common.py に SPPF クラスを追加します。個人的には、この方法は間接的に YOLOv5-6.0 ネットワーク モデルのトレーニングになると思いますが、という疑問も解決できます。

5. 参考文献

AttributeError: 属性 'SPPF' を取得できません · 問題 #5175 · Ultralytics/yolov5 (github.com) icon-default.png?t=M276https://github.com/ultralytics/yolov5/issues/5175

おすすめ

転載: blog.csdn.net/m0_46749624/article/details/124069086