Tài liệu tham khảo cho ultralytics/nn/tasks.py
Ghi
Tệp này có sẵn tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/nn/tasks.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !
ultralytics.nn.tasks.BaseModel
Căn cứ: Module
Lớp BaseModel đóng vai trò là lớp cơ sở cho tất cả các mô hình trong Ultralytics YOLO gia đình.
Mã nguồn trong 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)
Chuyển tiếp vượt qua mô hình trên một tỷ lệ duy nhất. Bao bọc cho _forward_once
phương pháp.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
x |
Tensor | dict
|
Hình ảnh đầu vào tensor hoặc một lệnh bao gồm hình ảnh tensor và nhãn GT. |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tensor
|
Đầu ra của mạng. |
Mã nguồn trong ultralytics/nn/tasks.py
fuse(verbose=True)
Hợp nhất Conv2d()
và BatchNorm2d()
các lớp của mô hình thành một lớp duy nhất, để cải thiện
hiệu quả tính toán.
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Module
|
Mô hình hợp nhất được trả lại. |
Mã nguồn trong ultralytics/nn/tasks.py
info(detailed=False, verbose=True, imgsz=640)
In thông tin mô hình.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
detailed |
bool
|
nếu True, in ra thông tin chi tiết về mô hình. Mặc định là False |
False
|
verbose |
bool
|
nếu True, in ra thông tin mô hình. Mặc định là False |
True
|
imgsz |
int
|
kích thước của hình ảnh mà người mẫu sẽ được đào tạo. Mặc định là 640 |
640
|
Mã nguồn trong ultralytics/nn/tasks.py
init_criterion()
is_fused(thresh=10)
Kiểm tra xem mô hình có nhỏ hơn một ngưỡng nhất định của các lớp BatchNorm hay không.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
thresh |
int
|
Số ngưỡng của các lớp BatchNorm. Mặc định là 10. |
10
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
bool
|
True nếu số lượng lớp BatchNorm trong model nhỏ hơn ngưỡng, False nếu không. |
Mã nguồn trong ultralytics/nn/tasks.py
load(weights, verbose=True)
Tải trọng lượng vào mô hình.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
weights |
dict | Module
|
Các trọng lượng được đào tạo trước sẽ được tải. |
bắt buộc |
verbose |
bool
|
Có ghi lại tiến trình chuyển tiền hay không. Mặc định là True. |
True
|
Mã nguồn trong ultralytics/nn/tasks.py
loss(batch, preds=None)
Tổn thất điện toán.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
batch |
dict
|
Hàng loạt để tính toán tổn thất trên |
bắt buộc |
preds |
Tensor | List[Tensor]
|
Dự đoán. |
None
|
Mã nguồn trong ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, augment=False, embed=None)
Thực hiện chuyển tiếp qua mạng.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
x |
Tensor
|
Đầu vào tensor đến mô hình. |
bắt buộc |
profile |
bool
|
In thời gian tính toán của từng layer nếu True, mặc định là False. |
False
|
visualize |
bool
|
Lưu bản đồ tính năng của mô hình nếu True, mặc định là False. |
False
|
augment |
bool
|
Tăng cường hình ảnh trong khi dự đoán, mặc định là False. |
False
|
embed |
list
|
Danh sách các vectơ tính năng/nhúng để trả về. |
None
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tensor
|
Đầu ra cuối cùng của mô hình. |
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.DetectionModel
Căn cứ: BaseModel
YOLOv8 mô hình phát hiện.
Mã nguồn trong ultralytics/nn/tasks.py
__init__(cfg='yolov8n.yaml', ch=3, nc=None, verbose=True)
Khởi tạo YOLOv8 mô hình phát hiện với cấu hình và tham số đã cho.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.OBBModel
Căn cứ: DetectionModel
YOLOv8 Mô hình Hộp giới hạn định hướng (OBB).
Mã nguồn trong ultralytics/nn/tasks.py
__init__(cfg='yolov8n-obb.yaml', ch=3, nc=None, verbose=True)
Khởi tạo YOLOv8 Mô hình OBB với cấu hình và tham số nhất định.
ultralytics.nn.tasks.SegmentationModel
Căn cứ: DetectionModel
YOLOv8 mô hình phân khúc.
Mã nguồn trong ultralytics/nn/tasks.py
__init__(cfg='yolov8n-seg.yaml', ch=3, nc=None, verbose=True)
Khởi tạo YOLOv8 Mô hình phân đoạn với cấu hình và tham số nhất định.
ultralytics.nn.tasks.PoseModel
Căn cứ: DetectionModel
YOLOv8 Tạo dáng người mẫu.
Mã nguồn trong ultralytics/nn/tasks.py
__init__(cfg='yolov8n-pose.yaml', ch=3, nc=None, data_kpt_shape=(None, None), verbose=True)
Khởi tạo YOLOv8 Tạo dáng người mẫu.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.ClassificationModel
Căn cứ: BaseModel
YOLOv8 mô hình phân loại.
Mã nguồn trong ultralytics/nn/tasks.py
__init__(cfg='yolov8n-cls.yaml', ch=3, nc=None, verbose=True)
Init ClassificationModel với YAML, kênh, số lớp, cờ dài dòng.
init_criterion()
reshape_outputs(model, nc)
staticmethod
Cập nhật mô hình phân loại TorchVision thành số lớp 'n' nếu cần.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.RTDETRDetectionModel
Căn cứ: DetectionModel
Lớp mô hình phát hiện RTDETR (Real-time DEtection and Tracking using Transformers).
Lớp này chịu trách nhiệm xây dựng kiến trúc RTDETR, xác định các hàm mất mát và tạo điều kiện cho cả hai các quá trình đào tạo và suy luận. RTDETR là một mô hình phát hiện và theo dõi đối tượng mở rộng từ Lớp cơ sở DetectionModel.
Thuộc tính:
Tên | Kiểu | Sự miêu tả |
---|---|---|
cfg |
str
|
Đường dẫn tệp cấu hình hoặc chuỗi đặt trước. Mặc định là 'rtdetr-l.yaml'. |
ch |
int
|
Số lượng kênh đầu vào. Mặc định là 3 (RGB). |
nc |
int
|
Số lớp để phát hiện đối tượng. Mặc định là Không có. |
verbose |
bool
|
Chỉ định xem số liệu thống kê tóm tắt có được hiển thị trong quá trình khởi tạo hay không. Mặc định là True. |
Phương pháp:
Tên | Sự miêu tả |
---|---|
init_criterion |
Khởi tạo tiêu chí được sử dụng để tính toán tổn thất. |
loss |
Tính toán và trả về tổn thất trong quá trình đào tạo. |
predict |
Thực hiện chuyển tiếp qua mạng và trả về đầu ra. |
Mã nguồn trong ultralytics/nn/tasks.py
441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555 |
|
__init__(cfg='rtdetr-l.yaml', ch=3, nc=None, verbose=True)
Khởi tạo RTDETRDetectionModel.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
cfg |
str
|
Tên tệp cấu hình hoặc đường dẫn. |
'rtdetr-l.yaml'
|
ch |
int
|
Số lượng kênh đầu vào. |
3
|
nc |
int
|
Số lượng lớp học. Mặc định là Không có. |
None
|
verbose |
bool
|
In thông tin bổ sung trong quá trình khởi tạo. Mặc định là True. |
True
|
Mã nguồn trong ultralytics/nn/tasks.py
init_criterion()
Khởi tạo tiêu chí tổn thất cho RTDETRDetectionModel.
loss(batch, preds=None)
Tính toán tổn thất cho lô dữ liệu nhất định.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
batch |
dict
|
Từ điển chứa dữ liệu hình ảnh và nhãn. |
bắt buộc |
preds |
Tensor
|
Dự đoán mô hình được tính toán trước. Mặc định là Không có. |
None
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
tuple
|
Một bộ chứa tổng tổn thất và ba tổn thất chính trong một tensor. |
Mã nguồn trong ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, batch=None, augment=False, embed=None)
Thực hiện chuyển tiếp qua mô hình.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
x |
Tensor
|
Đầu vào tensor. |
bắt buộc |
profile |
bool
|
Nếu True, hãy lập hồ sơ thời gian tính toán cho mỗi lớp. Mặc định là False. |
False
|
visualize |
bool
|
Nếu True, hãy lưu bản đồ tính năng để trực quan hóa. Mặc định là False. |
False
|
batch |
dict
|
Dữ liệu sự thật cơ bản để đánh giá. Mặc định là Không có. |
None
|
augment |
bool
|
Nếu True, hãy thực hiện tăng cường dữ liệu trong quá trình suy luận. Mặc định là False. |
False
|
embed |
list
|
Danh sách các vectơ tính năng/nhúng để trả về. |
None
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tensor
|
Đầu ra của mô hình tensor. |
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.WorldModel
Căn cứ: DetectionModel
YOLOv8 Mô hình thế giới.
Mã nguồn trong 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)
Khởi tạo YOLOv8 Mô hình thế giới với cấu hình và tham số nhất định.
Mã nguồn trong ultralytics/nn/tasks.py
loss(batch, preds=None)
Tổn thất điện toán.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
batch |
dict
|
Hàng loạt để tính toán tổn thất trên. |
bắt buộc |
preds |
Tensor | List[Tensor]
|
Dự đoán. |
None
|
Mã nguồn trong ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, txt_feats=None, augment=False, embed=None)
Thực hiện chuyển tiếp qua mô hình.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
x |
Tensor
|
Đầu vào tensor. |
bắt buộc |
profile |
bool
|
Nếu True, hãy lập hồ sơ thời gian tính toán cho mỗi lớp. Mặc định là False. |
False
|
visualize |
bool
|
Nếu True, hãy lưu bản đồ tính năng để trực quan hóa. Mặc định là False. |
False
|
txt_feats |
Tensor
|
Các tính năng văn bản, sử dụng nó nếu nó được đưa ra. Mặc định là Không có. |
None
|
augment |
bool
|
Nếu True, hãy thực hiện tăng cường dữ liệu trong quá trình suy luận. Mặc định là False. |
False
|
embed |
list
|
Danh sách các vectơ tính năng/nhúng để trả về. |
None
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tensor
|
Đầu ra của mô hình tensor. |
Mã nguồn trong ultralytics/nn/tasks.py
set_classes(text, batch=80, cache_clip_model=True)
Đặt các lớp trước để mô hình có thể suy luận ngoại tuyến mà không cần mô hình clip.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.Ensemble
Căn cứ: ModuleList
Quần thể các mô hình.
Mã nguồn trong ultralytics/nn/tasks.py
__init__()
forward(x, augment=False, profile=False, visualize=False)
Hàm tạo ra YOLO Lớp cuối cùng của mạng.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.temporary_modules(modules=None)
Trình quản lý ngữ cảnh để tạm thời thêm hoặc sửa đổi các mô-đun trong PythonBộ nhớ cache mô-đun của (sys.modules
).
Hàm này có thể được sử dụng để thay đổi đường dẫn mô-đun trong thời gian chạy. Nó hữu ích khi tái cấu trúc mã, nơi bạn đã di chuyển mô-đun từ vị trí này sang vị trí khác nhưng bạn vẫn muốn hỗ trợ nhập cũ đường dẫn để tương thích ngược.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
modules |
dict
|
Một từ điển ánh xạ các đường dẫn mô-đun cũ đến các đường dẫn mô-đun mới. |
None
|
Ví dụ
Ghi
Các thay đổi chỉ có hiệu lực bên trong trình quản lý ngữ cảnh và được hoàn tác sau khi trình quản lý ngữ cảnh thoát.
Hãy lưu ý rằng thao tác trực tiếp sys.modules
có thể dẫn đến kết quả không thể đoán trước, đặc biệt là ở quy mô lớn hơn
ứng dụng hoặc thư viện. Sử dụng chức năng này một cách thận trọng.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.torch_safe_load(weight)
Hàm này cố gắng tải một PyTorch Mô hình với torchHàm .load(). Nếu một ModuleNotFoundError được nâng lên, Nó bắt lỗi, ghi lại thông báo cảnh báo và cố gắng cài đặt mô-đun bị thiếu thông qua Hàm check_requirements(). Sau khi cài đặt, hàm lại cố gắng tải mô hình bằng cách sử dụng torch.load().
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
weight |
str
|
Đường dẫn tệp của PyTorch mẫu. |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
dict
|
Các tải PyTorch mẫu. |
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_weights(weights, device=None, inplace=True, fuse=False)
Tải một tập hợp các mô hình trọng lượng = [a, b, c] hoặc một trọng lượng mô hình duy nhất = [a] hoặc trọng lượng = a.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_one_weight(weight, device=None, inplace=True, fuse=False)
Tải một trọng lượng mô hình duy nhất.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.parse_model(d, ch, verbose=True)
Phân tích cú pháp a YOLO Từ điển model.yaml thành một PyTorch mẫu.
Mã nguồn trong ultralytics/nn/tasks.py
830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867 868869870871872873874875876877878879880881882883884885886887888889890 891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942 |
|
ultralytics.nn.tasks.yaml_model_load(path)
Tải một YOLOv8 mô hình từ tệp YAML.
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_scale(model_path)
Đi theo con đường dẫn đến một YOLO tệp YAML của mô hình làm đầu vào và trích xuất ký tự kích thước của thang đo của mô hình. Chức năng sử dụng đối sánh biểu thức chính quy để tìm mẫu của thang đo mô hình trong tên tệp YAML, được ký hiệu là n, s, m, l hoặc x. Hàm trả về ký tự kích thước của thang đo mô hình dưới dạng chuỗi.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
model_path |
str | Path
|
Con đường dẫn đến YOLO tệp YAML của mô hình. |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
str
|
Ký tự kích thước của thang đo của mô hình, có thể là n, s, m, l hoặc x. |
Mã nguồn trong ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_task(model)
Đoán nhiệm vụ của một PyTorch mô hình từ kiến trúc hoặc cấu hình của nó.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
model |
Module | dict
|
PyTorch cấu hình mô hình hoặc mô hình ở định dạng YAML. |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
str
|
Nhiệm vụ của mô hình ('phát hiện', 'phân đoạn', 'phân loại', 'tạo dáng'). |
Tăng:
Kiểu | Sự miêu tả |
---|---|
SyntaxError
|
Nếu nhiệm vụ của mô hình không thể được xác định. |
Mã nguồn trong 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 |
|