Referência para ultralytics/utils/torch_utils.py
Nota
Este ficheiro está disponível em https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/ torch_utils .py. Se detectares um problema, por favor ajuda a corrigi-lo contribuindo com um Pull Request 🛠️. Obrigado 🙏!
ultralytics.utils.torch_utils.ModelEMA
Média Móvel Exponencial (EMA) actualizada de https://github.com/rwightman/pytorch-image-models
Mantém uma média móvel de tudo no modelo state_dict (parâmetros e buffers)
Para obter detalhes sobre a EMA, consulte https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
Para desativar a EMA, define o parâmetro enabled
atributo para False
.
Código fonte em ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
Cria a EMA.
Código fonte em ultralytics/utils/torch_utils.py
update(model)
Actualiza os parâmetros da EMA.
Código fonte em ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
Atualiza os atributos e salva o modelo despojado com o otimizador removido.
ultralytics.utils.torch_utils.EarlyStopping
Classe de paragem antecipada que pára o treino quando um número especificado de épocas tiver passado sem melhorias.
Código fonte em ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
Verifica se o treino deve ser interrompido.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
epoch |
int
|
Época atual de formação |
necessário |
fitness |
float
|
Valor de aptidão da época atual |
necessário |
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se a formação deve parar, Falso caso contrário |
Código fonte em ultralytics/utils/torch_utils.py
__init__(patience=50)
Inicializa o objeto de parada antecipada.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
patience |
int
|
Número de épocas a esperar depois de a aptidão deixar de melhorar antes de parar. |
50
|
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
Decorador para fazer com que todos os processos em treinamento distribuído esperem que cada local_master faça alguma coisa.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
Aplica o decorador torch.inference_mode() se torch>=1.9.0 senão o decorador torch.no_grad().
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
Retorna uma string com informações da CPU do sistema, ou seja, 'Apple M2'.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
Selecciona o dispositivo PyTorch adequado com base nos argumentos fornecidos.
A função recebe uma cadeia de caracteres que especifica o dispositivo ou um objeto torch.device e devolve um objeto torch.device que representa o dispositivo selecionado. A função também valida o número de dispositivos disponíveis e levanta uma exceção se o(s) dispositivo(s) solicitado(s) não estiver(em) disponível(eis).
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
device |
str | device
|
Cadeia de caracteres do dispositivo ou torch.device object. As opções são 'None', 'cpu', ou 'cuda', ou '0' ou '0,1,2,3'. Usa como padrão uma string vazia, que seleciona automaticamente seleciona automaticamente a primeira GPU disponível, ou CPU se nenhuma GPU estiver disponível. |
''
|
batch |
int
|
Tamanho do lote que está a ser utilizado no teu modelo. O valor predefinido é 0. |
0
|
newline |
bool
|
Se for Verdadeiro, adiciona uma nova linha no final da cadeia de registo. A predefinição é False. |
False
|
verbose |
bool
|
Se for True, regista as informações do dispositivo. A predefinição é Verdadeiro. |
True
|
Devolve:
Tipo | Descrição |
---|---|
device
|
Dispositivo selecionado. |
Aumenta:
Tipo | Descrição |
---|---|
ValueError
|
Se o dispositivo especificado não estiver disponível ou se o tamanho do lote não for um múltiplo do número de dispositivos dispositivos ao usar várias GPUs. |
Exemplos:
Nota
Define a variável de ambiente 'CUDA_VISIBLE_DEVICES' para especificar quais GPUs usar.
Código fonte em ultralytics/utils/torch_utils.py
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 |
|
ultralytics.utils.torch_utils.time_sync()
ultralytics.utils.torch_utils.fuse_conv_and_bn(conv, bn)
Funde as camadas Conv2d() e BatchNorm2d() https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
Funde as camadas ConvTranspose2d() e BatchNorm2d().
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
Informações sobre o modelo.
imgsz pode ser um int ou uma lista, ou seja, imgsz=640 ou imgsz=[640, 320].
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
Devolve o número total de parâmetros com gradientes num modelo YOLO .
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
Devolve o dict de informações do modelo com informações úteis sobre o modelo.
Exemplo
YOLOv8n informação para madeireiros
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
Devolve os FLOPs de um modelo YOLO .
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
Calcula os FLOPs do modelo (alternativa ao pacote thop, mas infelizmente 2-10x mais lento).
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
Inicializa os pesos do modelo com valores aleatórios.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
Redimensiona e preenche uma imagem tensor de forma img(bs,3,y,x) com base num determinado rácio e tamanho de grelha gs, opcionalmente mantém a forma original.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
Devolve o x mais próximo divisível pelo divisor.
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
Copia atributos do objeto 'b' para o objeto 'a', com opções para incluir/excluir certos atributos.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
Devolve a segunda versão mais recente do conjunto de operações ONNX suportada por esta versão de PyTorch, ajustada em função da maturidade.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
Devolve um dicionário de chaves de intersecção com formas correspondentes, excluindo chaves de 'exclusão', utilizando valores da.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
Desparaleliza um modelo: retorna um modelo de GPU única se o modelo for do tipo DP ou DDP.
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
Devolve uma função lambda para uma rampa sinusoidal de y1 a y2 https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
Inicializa as sementes do gerador de números aleatórios (RNG) https://pytorch.org/docs/stable/notes/randomness.html.
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
Retira o optimizador de 'f' para finalizar o treino e, opcionalmente, guarda como 's'.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
f |
str
|
caminho do ficheiro para o modelo do qual o optimizador deve ser retirado. A predefinição é 'best.pt'. |
'best.pt'
|
s |
str
|
caminho do ficheiro para guardar o modelo com o optimizador despojado. Se não for fornecido, 'f' será substituído. |
''
|
Devolve:
Tipo | Descrição |
---|---|
None
|
Não tens |
Exemplo
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
Converte o state_dict de um determinado otimizador para FP16, concentrando-se na chave 'state' para tensor conversões.
Este método visa reduzir o tamanho do armazenamento sem alterar os "param_groups", uma vez que estes contêm dados nãotensor .
Código fonte em ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics perfil de velocidade, memória e FLOPs.
Exemplo
Código fonte em ultralytics/utils/torch_utils.py
Criado em 2023-11-12, Atualizado em 2024-05-08
Autores: Burhan-Q (1), glenn-jocher (4), Laughing-q (1)