Referência para ultralytics/nn/tasks.py
Nota
Este ficheiro está disponível em https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/tasks .py. Se encontrares um problema, por favor ajuda a corrigi-lo contribuindo com um Pull Request 🛠️. Obrigado 🙏!
ultralytics.nn.tasks.BaseModel
Bases: Module
A classe BaseModel serve como classe base para todos os modelos da família Ultralytics YOLO .
Código fonte em 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)
Passa à frente do modelo numa única escala. Envolvente para _forward_once
método.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
x |
Tensor | dict
|
A imagem de entrada tensor ou um ditado que inclui a imagem tensor e etiquetas gt. |
necessário |
Devolve:
Tipo | Descrição |
---|---|
Tensor
|
A saída da rede. |
Código fonte em ultralytics/nn/tasks.py
fuse(verbose=True)
Funda o Conv2d()
e BatchNorm2d()
camadas do modelo numa única camada, de modo a melhorar a
eficiência do cálculo.
Devolve:
Tipo | Descrição |
---|---|
Module
|
Devolve o modelo fundido. |
Código fonte em ultralytics/nn/tasks.py
info(detailed=False, verbose=True, imgsz=640)
Imprime a informação do modelo.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
detailed |
bool
|
se Verdadeiro, imprime informações detalhadas sobre o modelo. A predefinição é Falso |
False
|
verbose |
bool
|
se Verdadeiro, imprime a informação do modelo. A predefinição é Falso |
True
|
imgsz |
int
|
o tamanho da imagem em que o modelo será treinado. Usa como predefinição 640 |
640
|
Código fonte em ultralytics/nn/tasks.py
init_criterion()
is_fused(thresh=10)
Verifica se o modelo tem menos de um determinado limite de camadas BatchNorm.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
thresh |
int
|
O número limite de camadas BatchNorm. A predefinição é 10. |
10
|
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se o número de camadas BatchNorm no modelo for inferior ao limiar, Falso caso contrário. |
Código fonte em ultralytics/nn/tasks.py
load(weights, verbose=True)
Carrega os pesos no modelo.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
weights |
dict | Module
|
Os pesos pré-treinados a serem carregados. |
necessário |
verbose |
bool
|
Se deves registar o progresso da transferência. A predefinição é Verdadeiro. |
True
|
Código fonte em ultralytics/nn/tasks.py
loss(batch, preds=None)
Calcula a perda.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
batch |
dict
|
Lote para calcular a perda em |
necessário |
preds |
Tensor | List[Tensor]
|
Prevê. |
None
|
Código fonte em ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, augment=False, embed=None)
Executa uma passagem para a frente na rede.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
x |
Tensor
|
A entrada tensor para o modelo. |
necessário |
profile |
bool
|
Imprime o tempo de computação de cada camada se for Verdadeiro, a predefinição é Falso. |
False
|
visualize |
bool
|
Guarda os mapas de características do modelo se for Verdadeiro, a predefinição é Falso. |
False
|
augment |
bool
|
Aumenta a imagem durante a previsão, a predefinição é Falso. |
False
|
embed |
list
|
Uma lista de vectores de características/embeddings a devolver. |
None
|
Devolve:
Tipo | Descrição |
---|---|
Tensor
|
A última saída do modelo. |
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.DetectionModel
Bases: BaseModel
YOLOv8 modelo de deteção.
Código fonte em ultralytics/nn/tasks.py
__init__(cfg='yolov8n.yaml', ch=3, nc=None, verbose=True)
Inicializa o modelo de deteção YOLOv8 com a configuração e os parâmetros fornecidos.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.OBBModel
Bases: DetectionModel
YOLOv8 Modelo OBB (Oriented Bounding Box).
Código fonte em ultralytics/nn/tasks.py
__init__(cfg='yolov8n-obb.yaml', ch=3, nc=None, verbose=True)
Inicializa o modelo YOLOv8 OBB com a configuração e os parâmetros fornecidos.
ultralytics.nn.tasks.SegmentationModel
Bases: DetectionModel
YOLOv8 modelo de segmentação.
Código fonte em ultralytics/nn/tasks.py
__init__(cfg='yolov8n-seg.yaml', ch=3, nc=None, verbose=True)
Inicializa o modelo de segmentação YOLOv8 com a configuração e os parâmetros fornecidos.
ultralytics.nn.tasks.PoseModel
Bases: DetectionModel
YOLOv8 modelo de pose.
Código fonte em ultralytics/nn/tasks.py
__init__(cfg='yolov8n-pose.yaml', ch=3, nc=None, data_kpt_shape=(None, None), verbose=True)
Inicializa o modelo YOLOv8 Pose.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.ClassificationModel
Bases: BaseModel
YOLOv8 modelo de classificação.
Código fonte em ultralytics/nn/tasks.py
__init__(cfg='yolov8n-cls.yaml', ch=3, nc=None, verbose=True)
Inicia o ClassificationModel com YAML, canais, número de classes, sinalizador verboso.
init_criterion()
reshape_outputs(model, nc)
staticmethod
Actualiza um modelo de classificação TorchVision para a contagem de classes "n", se necessário.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.RTDETRDetectionModel
Bases: DetectionModel
Classe de modelo de deteção RTDETR (Real-time DEtection and Tracking using Transformers).
Esta classe é responsável pela construção da arquitetura RTDETR, pela definição das funções de perda e pela facilitação dos processos de e facilita os processos de treino e de inferência. O RTDETR é um modelo de deteção e seguimento de objectos que se estende a partir da classe base DetectionModel.
Atributos:
Nome | Tipo | Descrição |
---|---|---|
cfg |
str
|
O caminho do ficheiro de configuração ou a cadeia de caracteres predefinida. A predefinição é 'rtdetr-l.yaml'. |
ch |
int
|
Número de canais de entrada. A predefinição é 3 (RGB). |
nc |
int
|
Número de classes para a deteção de objectos. A predefinição é Nenhum. |
verbose |
bool
|
Especifica se as estatísticas resumidas são mostradas durante a inicialização. A predefinição é True. |
Métodos:
Nome | Descrição |
---|---|
init_criterion |
Inicializa o critério utilizado para o cálculo da perda. |
loss |
Calcula e devolve a perda durante o treino. |
predict |
Executa uma passagem para a frente através da rede e devolve a saída. |
Código fonte em 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)
Inicializa o RTDETRDetectionModel.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
cfg |
str
|
Nome ou caminho do ficheiro de configuração. |
'rtdetr-l.yaml'
|
ch |
int
|
Número de canais de entrada. |
3
|
nc |
int
|
Número de classes. A predefinição é Nenhum. |
None
|
verbose |
bool
|
Imprime informações adicionais durante a inicialização. Usa o valor padrão True. |
True
|
Código fonte em ultralytics/nn/tasks.py
init_criterion()
Inicializa o critério de perda para o RTDETRDetectionModel.
loss(batch, preds=None)
Calcula a perda para um determinado lote de dados.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
batch |
dict
|
Dicionário que contém dados de imagens e etiquetas. |
necessário |
preds |
Tensor
|
Previsões de modelos pré-computados. Predefine-se como Nenhum. |
None
|
Devolve:
Tipo | Descrição |
---|---|
tuple
|
Uma tupla que contém a perda total e as três principais perdas num tensor. |
Código fonte em ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, batch=None, augment=False, embed=None)
Executa uma passagem para a frente através do modelo.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
x |
Tensor
|
A entrada tensor. |
necessário |
profile |
bool
|
Se for Verdadeiro, traça o perfil do tempo de cálculo para cada camada. A predefinição é Falso. |
False
|
visualize |
bool
|
Se Verdadeiro, guarda mapas de características para visualização. A predefinição é Falso. |
False
|
batch |
dict
|
Dados da verdade terrestre para avaliação. Predefine-se como Nenhum. |
None
|
augment |
bool
|
Se for Verdadeiro, executa a ampliação de dados durante a inferência. A predefinição é Falso. |
False
|
embed |
list
|
Uma lista de vectores de características/embeddings a devolver. |
None
|
Devolve:
Tipo | Descrição |
---|---|
Tensor
|
Saída do modelo tensor. |
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.WorldModel
Bases: DetectionModel
YOLOv8 Modelo mundial.
Código fonte em 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)
Inicializa o modelo do mundo YOLOv8 com a configuração e os parâmetros fornecidos.
Código fonte em ultralytics/nn/tasks.py
loss(batch, preds=None)
Calcula a perda.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
batch |
dict
|
Lote para calcular a perda. |
necessário |
preds |
Tensor | List[Tensor]
|
Prevê. |
None
|
Código fonte em ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, txt_feats=None, augment=False, embed=None)
Executa uma passagem para a frente através do modelo.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
x |
Tensor
|
A entrada tensor. |
necessário |
profile |
bool
|
Se for Verdadeiro, traça o perfil do tempo de cálculo para cada camada. A predefinição é Falso. |
False
|
visualize |
bool
|
Se Verdadeiro, guarda mapas de características para visualização. A predefinição é Falso. |
False
|
txt_feats |
Tensor
|
As características do texto, utiliza-o se for dado. A predefinição é Nenhum. |
None
|
augment |
bool
|
Se for Verdadeiro, executa a ampliação de dados durante a inferência. A predefinição é Falso. |
False
|
embed |
list
|
Uma lista de vectores de características/embeddings a devolver. |
None
|
Devolve:
Tipo | Descrição |
---|---|
Tensor
|
Saída do modelo tensor. |
Código fonte em ultralytics/nn/tasks.py
set_classes(text, batch=80, cache_clip_model=True)
Define as classes com antecedência para que o modelo possa fazer inferências offline sem o modelo de clipes.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.Ensemble
Bases: ModuleList
Conjunto de modelos.
Código fonte em ultralytics/nn/tasks.py
__init__()
forward(x, augment=False, profile=False, visualize=False)
A função gera a camada final da rede YOLO .
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.temporary_modules(modules=None)
Gerenciador de contexto para adicionar ou modificar temporariamente módulos no cache de módulos do Python(sys.modules
).
Esta função pode ser usada para alterar os caminhos do módulo durante o tempo de execução. É útil quando refatores de código, onde você moveu um módulo de um local para outro, mas ainda quer suportar os antigos caminhos de importação para compatibilidade com versões anteriores.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
modules |
dict
|
Um dicionário que mapeia caminhos de módulos antigos para caminhos de módulos novos. |
None
|
Exemplo
Nota
As alterações só têm efeito dentro do gestor de contexto e são anuladas quando o gestor de contexto sai.
Tem em atenção que a manipulação direta do sys.modules
pode levar a resultados imprevisíveis, especialmente em aplicações
aplicações ou bibliotecas maiores. Utiliza esta função com cuidado.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.torch_safe_load(weight)
Esta função tenta carregar um modelo PyTorch com a função torch.load(). Se um ModuleNotFoundError for levantado, captura o erro, regista uma mensagem de aviso e tenta instalar o módulo em falta através da função check_requirements(). Após a instalação, a função tenta novamente carregar o modelo usando torch.load().
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
weight |
str
|
O caminho do ficheiro do modelo PyTorch . |
necessário |
Devolve:
Tipo | Descrição |
---|---|
dict
|
O modelo PyTorch carregado. |
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_weights(weights, device=None, inplace=True, fuse=False)
Carrega um conjunto de modelos weights=[a,b,c] ou um único modelo weights=[a] ou weights=a.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_one_weight(weight, device=None, inplace=True, fuse=False)
Carrega um único modelo de pesos.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.parse_model(d, ch, verbose=True)
Analisa um dicionário YOLO model.yaml em um modelo PyTorch .
Código fonte em 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)
Carrega um modelo YOLOv8 a partir de um ficheiro YAML.
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_scale(model_path)
Toma um caminho para um ficheiro YAML do modelo YOLO como entrada e extrai o carácter de tamanho da escala do modelo. A função usa a correspondência de expressão regular para encontrar o padrão da escala do modelo no nome do arquivo YAML, que é denotado por n, s, m, l ou x. A função retorna o caractere de tamanho da escala do modelo como uma cadeia de caracteres.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
model_path |
str | Path
|
O caminho para o ficheiro YAML do modelo YOLO . |
necessário |
Devolve:
Tipo | Descrição |
---|---|
str
|
O carácter de tamanho da escala do modelo, que pode ser n, s, m, l ou x. |
Código fonte em ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_task(model)
Adivinha a tarefa de um modelo PyTorch a partir da sua arquitetura ou configuração.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
model |
Module | dict
|
PyTorch modelo ou configuração de modelo no formato YAML. |
necessário |
Devolve:
Tipo | Descrição |
---|---|
str
|
Tarefa do modelo ('detetar', 'segmentar', 'classificar', 'posar'). |
Aumenta:
Tipo | Descrição |
---|---|
SyntaxError
|
Se não for possível determinar a tarefa do modelo. |
Código fonte em 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 |
|