Π‘ΡΡΠ»ΠΊΠ° Π΄Π»Ρ ultralytics/utils/benchmarks.py
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/benchmarks .py. ΠΡΠ»ΠΈ ΡΡ Π·Π°ΠΌΠ΅ΡΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π΅, ΠΎΡΠΏΡΠ°Π²ΠΈΠ² Pull Request π οΈ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ π!
ultralytics.utils.benchmarks.RF100Benchmark
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
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 272 273 274 275 276 277 278 279 280 281 282 283 284 285 |
|
__init__()
Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ RF100Benchmark.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
evaluate(yaml_path, val_log_file, eval_log_file, list_ind)
ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
---|---|---|---|
yaml_path |
str
|
ΠΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ YAML. |
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ |
val_log_file |
str
|
ΠΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ val_log_file. |
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ |
eval_log_file |
str
|
eval_log_file path. |
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ |
list_ind |
int
|
ΠΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ . |
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ |
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
fix_yaml(path)
Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ yaml train ΠΈ val path.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
---|---|---|---|
path |
str
|
ΠΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ YAML. |
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ |
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
parse_dataset(ds_link_txt='datasets_links.txt')
Π Π°Π·Π±ΠΈΡΠ°ΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°ΠΉ ΠΈΡ .
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
---|---|---|---|
ds_link_txt |
str
|
ΠΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ dataset_links. |
'datasets_links.txt'
|
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
set_key(api_key)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈ Roboflow API-ΠΊΠ»ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
---|---|---|---|
api_key |
str
|
ΠΠ»ΡΡ API. |
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ |
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
ultralytics.utils.benchmarks.ProfileModels
ΠΠ»Π°ΡΡ ProfileModels Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° ΡΠ°ΠΉΡΠ°Ρ ONNX ΠΈ TensorRT.
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ FLOPs.
ΠΡΡΠΈΠ±ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
paths |
list
|
ΠΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. |
num_timed_runs |
int
|
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΠΎΠ½ΠΎΠ² ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 100. |
num_warmup_runs |
int
|
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΠΎΠ½ΠΎΠ² ΡΠ°Π·ΠΌΠΈΠ½ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 10. |
min_time |
float
|
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 60. |
imgsz |
int
|
Π Π°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ . ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 640. |
ΠΠ΅ΡΠΎΠ΄Ρ:
ΠΠΌΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
profile |
ΠΡΠΎΡΠΈΠ»ΠΈΡΡΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. |
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 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 |
|
__init__(paths, num_timed_runs=100, num_warmup_runs=10, min_time=60, imgsz=640, half=True, trt=True, device=None)
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉ ΠΊΠ»Π°ΡΡ ProfileModels Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
---|---|---|---|
paths |
list
|
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ. |
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ |
num_timed_runs |
int
|
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΠΎΠ½ΠΎΠ² ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 100. |
100
|
num_warmup_runs |
int
|
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΠΎΠ½ΠΎΠ² ΡΠ°Π·ΠΌΠΈΠ½ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - 10. |
10
|
min_time |
float
|
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 60. |
60
|
imgsz |
int
|
Π Π°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 640. |
640
|
half |
bool
|
Π€Π»Π°Π³, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π²Π°ΡΡΡΡ ΡΠΎΡΠΊΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ. |
True
|
trt |
bool
|
Π€Π»Π°Π³, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ TensorRT. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ True. |
True
|
device |
device
|
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ None, ΡΠΎ ΠΎΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. |
None
|
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
generate_results_dict(model_name, t_onnx, t_engine, model_info)
staticmethod
ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ GFLOPS ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
generate_table_row(model_name, t_onnx, t_engine, model_info)
ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
get_files()
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΡΠ΅ΠΉ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
get_onnx_model_info(onnx_file)
ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ΅Π², ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ ΠΈ FLOPs Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ ONNX . Π€Π°ΠΉΠ».
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
iterative_sigma_clipping(data, sigma=2, max_iters=3)
staticmethod
ΠΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΠ³ΠΌΠ°-ΠΊΠ»ΠΈΠΏΠΏΠΈΠ½Π³Π° ΠΊ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ, ΡΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
print_table(table_rows)
staticmethod
Π‘ΡΠΎΡΠΌΠΈΡΡΠΉ ΠΈ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΠΉ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
profile()
ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΠΆΡΡΠ½Π°Π» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠ²Π΅ΡΡΠ΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΡΡΠ°ΠΆΠΎΠΌ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
profile_onnx_model(onnx_file, eps=0.001)
ΠΡΠΎΡΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ONNX , Π²ΡΠΏΠΎΠ»Π½ΡΡ Π΅Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
profile_tensorrt_model(engine_file, eps=0.001)
ΠΡΠΎΡΠΈΠ»ΠΈΡΡΠΉ ΠΌΠΎΠ΄Π΅Π»Ρ TensorRT , ΠΈΠ·ΠΌΠ΅ΡΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΠΎΠ½Π°ΠΌΠΈ.
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
ultralytics.utils.benchmarks.benchmark(model=WEIGHTS_DIR / 'yolov8n.pt', data=None, imgsz=160, half=False, int8=False, device='cpu', verbose=False)
ΠΡΠΎΠ²Π΅Π΄ΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³ ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLO Π² ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΡΠΎΡΠ½ΠΎΡΡΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
---|---|---|---|
model |
str | Path | optional
|
ΠΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Path(SETTINGS['weights_dir']) / 'yolov8n.pt'. |
WEIGHTS_DIR / 'yolov8n.pt'
|
data |
str
|
ΠΠ°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ, Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ TASK2DATA, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ None. |
None
|
imgsz |
int
|
Π Π°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠ°Π»ΠΎΠ½Π°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 160. |
160
|
half |
bool
|
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π΅ΡΠ»ΠΈ True. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΈΡ False. |
False
|
int8 |
bool
|
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ int8-ΡΠΎΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π΅ΡΠ»ΠΈ True. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - False. |
False
|
device |
str
|
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊ, Π»ΠΈΠ±ΠΎ 'cpu', Π»ΠΈΠ±ΠΎ 'cuda'. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 'cpu'. |
'cpu'
|
verbose |
bool | float | optional
|
ΠΡΠ»ΠΈ True ΠΈΠ»ΠΈ float, ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΠΉ, ΡΡΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΎΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ False. |
False
|
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ:
ΠΠΌΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
df |
DataFrame
|
pandas DataFrame Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°, ΠΌΠ΅ΡΡΠΈΠΊΡ ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄Π°. |
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ultralytics/utils/benchmarks.py
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 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 |
|
Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 2023-11-12, ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 2024-05-08
ΠΠ²ΡΠΎΡΡ: Burhan-Q (1), glenn-jocher (4)