参考 ultralytics/nn/tasks.py
注
このファイルはhttps://github.com/ultralytics/ultralytics/blob/main/ ultralytics/nn/tasks .py にあります。もし問題を発見したら、Pull Request🛠️ を投稿して修正にご協力ください。ありがとうございました!
ultralytics.nn.tasks.BaseModel
ベース: Module
BaseModel クラスは、Ultralytics YOLO ファミリーの全てのモデルの基本クラスとして機能します。
ソースコード ultralytics/nn/tasks.py
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
|
forward(x, *args, **kwargs)
シングルスケールのモデルのフォワードパス。ラッパー _forward_once
メソッドを使用する。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
x |
Tensor | dict
|
入力画像tensor または画像tensor と gt ラベルを含む dict。 |
必須 |
リターンズ
タイプ | 説明 |
---|---|
Tensor
|
ネットワークの出力。 |
ソースコード ultralytics/nn/tasks.py
fuse(verbose=True)
ヒューズ Conv2d()
そして BatchNorm2d()
のレイヤーを1つのレイヤーにまとめ、計算効率を向上させた。
計算効率を向上させる。
リターンズ
タイプ | 説明 |
---|---|
Module
|
融合されたモデルが返される。 |
ソースコード ultralytics/nn/tasks.py
info(detailed=False, verbose=True, imgsz=640)
モデル情報を印刷します。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
detailed |
bool
|
Trueの場合、モデルの詳細情報を表示します。デフォルトはFalseです。 |
False
|
verbose |
bool
|
Trueの場合、モデル情報を表示する。デフォルトはFalse |
True
|
imgsz |
int
|
モデルの学習対象となる画像のサイズ。デフォルトは640 |
640
|
ソースコード ultralytics/nn/tasks.py
init_criterion()
is_fused(thresh=10)
モデルのBatchNormレイヤー数がある閾値以下かどうかをチェックする。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
thresh |
int
|
BatchNormレイヤーの閾値数。デフォルトは10。 |
10
|
リターンズ
タイプ | 説明 |
---|---|
bool
|
モデル内のBatchNorm層の数が閾値より少ない場合は真、そうでない場合は偽。 |
ソースコード ultralytics/nn/tasks.py
load(weights, verbose=True)
重みをモデルにロードする。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
weights |
dict | Module
|
ロードされる事前学習済みの重み。 |
必須 |
verbose |
bool
|
転送の進行状況をログに記録するかどうか。デフォルトはTrue。 |
True
|
ソースコード ultralytics/nn/tasks.py
loss(batch, preds=None)
損失を計算する。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
batch |
dict
|
損失計算バッチ |
必須 |
preds |
Tensor | List[Tensor]
|
予想だ。 |
None
|
ソースコード ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, augment=False, embed=None)
ネットワークをフォワードパスする。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
x |
Tensor
|
モデルへの入力tensor 。 |
必須 |
profile |
bool
|
各レイヤーの計算時間を表示します。 |
False
|
visualize |
bool
|
Trueの場合、モデルのフィーチャーマップを保存します。 |
False
|
augment |
bool
|
デフォルトは False。 |
False
|
embed |
list
|
返す特徴ベクトル/埋め込み値のリスト。 |
None
|
リターンズ
タイプ | 説明 |
---|---|
Tensor
|
モデルの最後の出力。 |
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.DetectionModel
ベース: BaseModel
YOLOv8 検出モデル。
ソースコード ultralytics/nn/tasks.py
__init__(cfg='yolov8n.yaml', ch=3, nc=None, verbose=True)
与えられたコンフィグとパラメータでYOLOv8 検出モデルを初期化する。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.OBBModel
ベース: DetectionModel
YOLOv8 OBB(Oriented Bounding Box)モデル。
ソースコード ultralytics/nn/tasks.py
__init__(cfg='yolov8n-obb.yaml', ch=3, nc=None, verbose=True)
ultralytics.nn.tasks.SegmentationModel
ベース: DetectionModel
YOLOv8 セグメンテーションモデル。
ソースコード ultralytics/nn/tasks.py
__init__(cfg='yolov8n-seg.yaml', ch=3, nc=None, verbose=True)
ultralytics.nn.tasks.PoseModel
ベース: DetectionModel
YOLOv8 ポーズモデル。
ソースコード ultralytics/nn/tasks.py
__init__(cfg='yolov8n-pose.yaml', ch=3, nc=None, data_kpt_shape=(None, None), verbose=True)
YOLOv8 ポーズモデルを初期化する。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.ClassificationModel
ベース: BaseModel
YOLOv8 分類モデル。
ソースコード ultralytics/nn/tasks.py
__init__(cfg='yolov8n-cls.yaml', ch=3, nc=None, verbose=True)
ClassificationModel を YAML、チャンネル、クラス数、冗長フラグで初期化します。
init_criterion()
reshape_outputs(model, nc)
staticmethod
必要であれば、TorchVision分類モデルをクラス数'n'に更新する。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.RTDETRDetectionModel
ベース: DetectionModel
RTDETR (Real-time DEtection and Tracking using Transformers) 検出モデルクラス。
このクラスは、RTDETRアーキテクチャの構築、損失関数の定義、および学習と推論の両プロセスの促進を担当する。 このクラスは、RTDETRアーキテクチャを構築し、損失関数を定義し、学習と推論の両プロセスを促進する。RTDETRは、オブジェクト検出と追跡モデルであり DetectionModel基底クラスから拡張されたオブジェクト検出・追跡モデルです。
属性:
名称 | タイプ | 説明 |
---|---|---|
cfg |
str
|
設定ファイルのパスまたはプリセット文字列。デフォルトは'rtdetr-l.yaml'です。 |
ch |
int
|
入力チャンネル数。デフォルトは3(RGB)。 |
nc |
int
|
オブジェクト検出のクラス数。デフォルトは None。 |
verbose |
bool
|
初期化中にサマリー統計を表示するかどうかを指定します。デフォルトはTrue。 |
方法:
名称 | 説明 |
---|---|
init_criterion |
損失計算に使用する基準を初期化する。 |
loss |
トレーニング中の損失を計算して返す。 |
predict |
ネットワークをフォワードパスし、出力を返す。 |
ソースコード ultralytics/nn/tasks.py
441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 |
|
__init__(cfg='rtdetr-l.yaml', ch=3, nc=None, verbose=True)
RTDETRDetectionModel を初期化する。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
cfg |
str
|
設定ファイル名またはパス。 |
'rtdetr-l.yaml'
|
ch |
int
|
入力チャンネル数。 |
3
|
nc |
int
|
クラスの数。デフォルトは None。 |
None
|
verbose |
bool
|
初期化中に追加情報を表示する。デフォルトは True。 |
True
|
ソースコード ultralytics/nn/tasks.py
init_criterion()
loss(batch, preds=None)
与えられたバッチデータの損失を計算する。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
batch |
dict
|
画像データとラベルデータを含む辞書。 |
必須 |
preds |
Tensor
|
事前に計算されたモデルの予測値。デフォルトはNone。 |
None
|
リターンズ
タイプ | 説明 |
---|---|
tuple
|
tensor の合計損失と主な3つの損失を含むタプル。 |
ソースコード ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, batch=None, augment=False, embed=None)
モデルをフォワードパスする。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
x |
Tensor
|
入力はtensor 。 |
必須 |
profile |
bool
|
True の場合、各レイヤーの計算時間をプロファイリングします。デフォルトはFalse。 |
False
|
visualize |
bool
|
True の場合、可視化のためにフィーチャーマップを保存します。デフォルトは False です。 |
False
|
batch |
dict
|
評価の基準となるデータ。デフォルトは None。 |
None
|
augment |
bool
|
Trueの場合、推論中にデータ拡張を行う。デフォルトは False。 |
False
|
embed |
list
|
返す特徴ベクトル/埋め込み値のリスト。 |
None
|
リターンズ
タイプ | 説明 |
---|---|
Tensor
|
モデルの出力tensor. |
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.WorldModel
ベース: DetectionModel
YOLOv8 世界のモデル。
ソースコード ultralytics/nn/tasks.py
558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 |
|
__init__(cfg='yolov8s-world.yaml', ch=3, nc=None, verbose=True)
与えられた設定とパラメータでYOLOv8 ワールドモデルを初期化する。
ソースコード ultralytics/nn/tasks.py
loss(batch, preds=None)
損失を計算する。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
batch |
dict
|
損失を計算するバッチ。 |
必須 |
preds |
Tensor | List[Tensor]
|
予想だ。 |
None
|
ソースコード ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, txt_feats=None, augment=False, embed=None)
モデルをフォワードパスする。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
x |
Tensor
|
入力はtensor 。 |
必須 |
profile |
bool
|
True の場合、各レイヤーの計算時間をプロファイリングします。デフォルトはFalse。 |
False
|
visualize |
bool
|
True の場合、可視化のためにフィーチャーマップを保存します。デフォルトは False です。 |
False
|
txt_feats |
Tensor
|
テキストの特徴。デフォルトはNone。 |
None
|
augment |
bool
|
Trueの場合、推論中にデータ拡張を行う。デフォルトは False。 |
False
|
embed |
list
|
返す特徴ベクトル/埋め込み値のリスト。 |
None
|
リターンズ
タイプ | 説明 |
---|---|
Tensor
|
モデルの出力tensor. |
ソースコード ultralytics/nn/tasks.py
set_classes(text, batch=80, cache_clip_model=True)
モデルをクリップせずにオフライン推論ができるように、あらかじめクラスを設定しておく。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.Ensemble
ベース: ModuleList
モデルのアンサンブル。
ソースコード ultralytics/nn/tasks.py
__init__()
forward(x, augment=False, profile=False, visualize=False)
関数はYOLO ネットワークの最終層を生成する。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.temporary_modules(modules=None)
Python のモジュールキャッシュ (sys.modules
).
この関数を使用すると、実行時にモジュールのパスを変更することができる。コードをリファクタリングするときに便利です、 コードをリファクタリングするときに便利です。 をサポートしたい場合に便利です。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
modules |
dict
|
古いモジュールパスを新しいモジュールパスにマッピングする辞書。 |
None
|
例
注
変更はコンテキストマネージャー内部でのみ有効で、コンテキストマネージャーが終了すると元に戻される。
直接 sys.modules
特に大規模なアプリケーションやライブラリでは、予測不可能な結果を招く可能性がある。
特に大規模なアプリケーションやライブラリでは。この関数は注意して使用してください。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.torch_safe_load(weight)
この関数はtorch.load() 関数を用いてPyTorch モデルのロードを試みます。ModuleNotFoundError が発生した場合、この関数はエラーをキャッチします、 エラーが発生した場合、エラーをキャッチして警告メッセージをログに記録します。 関数によってインストールを試みます。インストール後、この関数はtorch.load() を使用してモデルのロードを再度試みます。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
weight |
str
|
PyTorch モデルのファイルパス。 |
必須 |
リターンズ
タイプ | 説明 |
---|---|
dict
|
PyTorch モデル。 |
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_weights(weights, device=None, inplace=True, fuse=False)
モデルのアンサンブルweights=[a,b,c]または単一のモデルweights=[a]またはweights=aをロードします。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_one_weight(weight, device=None, inplace=True, fuse=False)
単一のモデルウェイトをロードする。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.parse_model(d, ch, verbose=True)
YOLO model.yaml辞書をPyTorch modelにパースする。
ソースコード ultralytics/nn/tasks.py
830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 |
|
ultralytics.nn.tasks.yaml_model_load(path)
YAML ファイルからYOLOv8 モデルを読み込む。
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_scale(model_path)
入力としてYOLO モデルの YAML ファイルへのパスを受け取り、モデルのスケールのサイズ文字を抽出します。関数 関数は正規表現マッチングを使ってYAMLファイル名の中からモデルの目盛りのパターンを見つけます。 この関数はモデルの目盛りのサイズ文字を文字列として返します。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
model_path |
str | Path
|
YOLO モデルの YAML ファイルへのパス。 |
必須 |
リターンズ
タイプ | 説明 |
---|---|
str
|
モデルの縮尺を表すサイズ文字で、n、s、m、l、xのいずれかを指定する。 |
ソースコード ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_task(model)
PyTorch モデルのアーキテクチャや構成から、そのモデルのタスクを推測する。
パラメーター
名称 | タイプ | 説明 | デフォルト |
---|---|---|---|
model |
Module | dict
|
PyTorch モデルもしくはモデルコンフィギュレーションをYAMLフォーマットで提供します。 |
必須 |
リターンズ
タイプ | 説明 |
---|---|
str
|
モデルのタスク(「検出」、「分割」、「分類」、「ポーズ」)。 |
レイズ
タイプ | 説明 |
---|---|
SyntaxError
|
モデルのタスクが決定できなかった場合。 |
ソースコード ultralytics/nn/tasks.py
982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 |
|