Salta para o conteúdo

Treino de modelos com Ultralytics YOLO

Ultralytics YOLO ecossistema e integrações

Introdução

O treinamento de um modelo de aprendizado profundo envolve a alimentação de dados e o ajuste de seus parâmetros para que ele possa fazer previsões precisas. O modo de treino em Ultralytics YOLOv8 foi concebido para um treino eficaz e eficiente de modelos de deteção de objectos, utilizando plenamente as capacidades do hardware moderno. Este guia tem como objetivo cobrir todos os detalhes necessários para começares a treinar os teus próprios modelos utilizando o conjunto robusto de funcionalidades do YOLOv8.



Observa: Como treinar um modelo YOLOv8 no teu conjunto de dados personalizado em Google Colab.

Porquê escolher Ultralytics YOLO para a formação?

Eis algumas razões convincentes para optares pelo modo Train do YOLOv8:

  • Eficiência: Tira o máximo partido do teu hardware, quer estejas numa configuração única -GPU ou a escalar entre várias GPUs.
  • Versatilidade: Treina em conjuntos de dados personalizados, para além dos prontamente disponíveis, como COCO, VOC e ImageNet.
  • Fácil de utilizar: Interfaces CLI e Python simples mas poderosas para uma experiência de formação direta.
  • Flexibilidade de hiperparâmetros: Uma ampla gama de hiperparâmetros personalizáveis para ajustar o desempenho do modelo.

Principais características do modo comboio

Apresentamos em seguida algumas características notáveis do modo comboio do YOLOv8:

  • Descarga automática de conjuntos de dados: Os conjuntos de dados padrão como COCO, VOC e ImageNet são descarregados automaticamente na primeira utilização.
  • Suporte a váriosGPU : Dimensiona os teus esforços de formação de forma integrada em várias GPUs para acelerar o processo.
  • Configuração de hiperparâmetros: A opção de modificar hiperparâmetros por meio de arquivos de configuração YAML ou argumentos de CLI .
  • Visualização e monitorização: Acompanha em tempo real as métricas de formação e visualiza o processo de aprendizagem para obter melhores informações.

Dica

  • YOLOv8 conjuntos de dados como COCO, VOC, ImageNet e muitos outros são descarregados automaticamente na primeira utilização, ou seja yolo train data=coco.yaml

Exemplos de utilização

Treina YOLOv8n no conjunto de dados COCO8 para 100 épocas com o tamanho de imagem 640. O dispositivo de treino pode ser especificado utilizando a opção device argumento. Se não for passado nenhum argumento GPU device=0 será utilizado se estiver disponível, caso contrário device='cpu' será utilizado. Vê a secção Argumentos abaixo para uma lista completa de argumentos de treino.

Single-GPU e CPU Exemplo de formação

O dispositivo é determinado automaticamente. Se estiver disponível um GPU , este será utilizado; caso contrário, a formação terá início em CPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from YAML
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolov8n.yaml").load("yolov8n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

Multi-GPU Formação

O treinamento multiGPU permite a utilização mais eficiente dos recursos de hardware disponíveis, distribuindo a carga de treinamento em várias GPUs. Esta funcionalidade está disponível através da API Python e da interface de linha de comandos. Para ativar o treino multiGPU , especifica as IDs de dispositivo GPU que pretendes utilizar.

Multi-GPU Exemplo de formação

Para treinar com 2 GPUs, CUDA dispositivos 0 e 1, usa os seguintes comandos. Expande para GPUs adicionais conforme necessário.

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1

Apple M1 e M2 MPS Formação

Com o suporte para os chips Apple M1 e M2 integrados nos modelos Ultralytics YOLO , é agora possível treinar os teus modelos em dispositivos que utilizam a poderosa estrutura Metal Performance Shaders (MPS). O MPS oferece uma forma de alto desempenho de executar tarefas de computação e processamento de imagem no silício personalizado da Apple.

Para ativar a formação nos chips Apple M1 e M2, deves especificar 'mps' como o teu dispositivo quando iniciares o processo de formação. Segue-se um exemplo de como podes fazer isto em Python e através da linha de comandos:

MPS Exemplo de formação

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps

Ao mesmo tempo que aproveita o poder computacional dos chips M1/M2, isto permite um processamento mais eficiente das tarefas de formação. Para obter orientações mais detalhadas e opções de configuração avançadas, consulta a documentaçãoPyTorch MPS .

Retomar as formações interrompidas

Retomar o treinamento a partir de um estado salvo anteriormente é um recurso crucial ao trabalhar com modelos de aprendizado profundo. Isto pode ser útil em vários cenários, como quando o processo de treino foi inesperadamente interrompido, ou quando desejas continuar a treinar um modelo com novos dados ou para mais épocas.

Quando o treinamento é retomado, o Ultralytics YOLO carrega os pesos do último modelo salvo e também restaura o estado do otimizador, o agendador da taxa de aprendizado e o número da época. Isto permite-te continuar o processo de treino sem problemas a partir do ponto onde foi deixado.

Podes retomar facilmente a formação em Ultralytics YOLO definindo o resume argumento para True ao chamar o train e especificando o caminho para o método .pt ficheiro que contém os pesos do modelo parcialmente treinado.

Segue-se um exemplo de como retomar uma formação interrompida utilizando Python e através da linha de comandos:

Exemplo de formação de currículo

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

Por definição resume=True, o train continua a treinar a partir do ponto em que parou, utilizando o estado armazenado no ficheiro 'path/to/last.pt'. Se o ficheiro resume é omitido ou definido como False, o train A função de "iniciar" inicia uma nova sessão de formação.

Lembra-te que os pontos de controlo são guardados no final de cada época por defeito, ou num intervalo fixo utilizando a opção save_period por isso, tens de completar pelo menos 1 época para retomar uma corrida de treino.

Definições do comboio

As definições de treino para os modelos YOLO englobam vários hiperparâmetros e configurações utilizados durante o processo de treino. Estas definições influenciam o desempenho, a velocidade e a precisão do modelo. As principais definições de treino incluem o tamanho do lote, a taxa de aprendizagem, o momento e a diminuição do peso. Além disso, a escolha do optimizador, a função de perda e a composição do conjunto de dados de treino podem ter impacto no processo de treino. O ajuste cuidadoso e a experimentação com estas definições são cruciais para otimizar o desempenho.

Argumenta Predefinição Descrição
model None Especifica o arquivo de modelo para treinamento. Aceita um caminho para um arquivo .pt modelo pré-treinado ou um .yaml ficheiro de configuração. Essencial para definir a estrutura do modelo ou inicializar os pesos.
data None Caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro contém parâmetros específicos do conjunto de dados, incluindo caminhos para os dados de treino e validação, nomes de classes e número de classes.
epochs 100 Número total de épocas de treino. Cada época representa uma passagem completa por todo o conjunto de dados. O ajuste deste valor pode afetar a duração do treino e o desempenho do modelo.
time None Tempo máximo de formação em horas. Se estiver definido, substitui a opção epochs permitindo que a formação pare automaticamente após a duração especificada. Útil para cenários de formação com restrições de tempo.
patience 100 Número de épocas a aguardar sem melhoria nas métricas de validação antes de parar o treino antecipadamente. Ajuda a evitar o sobreajuste, interrompendo o treino quando o desempenho atinge um patamar.
batch 16 Tamanho do lote, com três modos: definido como um número inteiro (por exemplo, batch=16), modo automático para 60% de utilização da memória GPU (batch=-1) ou modo automático com fração de utilização especificada (batch=0.70).
imgsz 640 Dimensão da imagem alvo para treino. Todas as imagens são redimensionadas para esta dimensão antes de serem introduzidas no modelo. Afecta a precisão do modelo e a complexidade computacional.
save True Permite guardar os pontos de verificação do treino e os pesos finais do modelo. É útil para retomar o treino ou a implementação do modelo.
save_period -1 Frequência de gravação dos pontos de controlo do modelo, especificada em épocas. Um valor de -1 desactiva esta funcionalidade. Útil para guardar modelos provisórios durante longas sessões de treino.
cache False Ativa a colocação em cache das imagens do conjunto de dados na memória (True/ram), no disco (disk), ou desactiva-a (False). Melhora a velocidade de treino reduzindo as E/S do disco à custa de uma maior utilização da memória.
device None Especifica o(s) dispositivo(s) computacional(is) para a formação: um único GPU (device=0), várias GPUs (device=0,1), CPU (device=cpu), ou MPS para silício Apple (device=mps).
workers 8 Número de threads de trabalho para carregamento de dados (por RANK se Multi-GPU training). Influencia a velocidade do pré-processamento de dados e a alimentação do modelo, especialmente útil em configurações multiGPU .
project None Nome do diretório do projeto onde são guardados os resultados do treino. Permite o armazenamento organizado de diferentes experiências.
name None Nome da ação de formação. Utilizado para criar uma subdiretoria dentro da pasta do projeto, onde são armazenados os registos e os resultados da formação.
exist_ok False Se Verdadeiro, permite a substituição de um diretório de projeto/nome existente. Útil para experimentação iterativa sem a necessidade de limpar manualmente as saídas anteriores.
pretrained True Determina se deve iniciar o treino a partir de um modelo pré-treinado. Pode ser um valor booleano ou um caminho de cadeia de caracteres para um modelo específico a partir do qual carregar pesos. Melhora a eficiência do treinamento e o desempenho do modelo.
optimizer 'auto' Escolhe o optimizador para a formação. As opções incluem SGD, Adam, AdamW, NAdam, RAdam, RMSProp etc., ou auto para seleção automática com base na configuração do modelo. Afecta a velocidade de convergência e a estabilidade.
verbose False Ativa a saída detalhada durante o treino, fornecendo registos detalhados e actualizações de progresso. É útil para depurar e monitorizar de perto o processo de formação.
seed 0 Define a semente aleatória para o treino, garantindo a reprodutibilidade dos resultados entre execuções com as mesmas configurações.
deterministic True Força a utilização de algoritmos determinísticos, garantindo a reprodutibilidade, mas pode afetar o desempenho e a velocidade devido à restrição de algoritmos não determinísticos.
single_cls False Trata todas as classes em conjuntos de dados multi-classe como uma única classe durante o treino. Útil para tarefas de classificação binária ou quando se concentra na presença de objectos em vez de na classificação.
rect False Permite a formação retangular, optimizando a composição do lote para um preenchimento mínimo. Pode melhorar a eficiência e a velocidade, mas pode afetar a precisão do modelo.
cos_lr False Utiliza um programador de taxa de aprendizagem cosseno, ajustando a taxa de aprendizagem seguindo uma curva cosseno ao longo de épocas. Ajuda a gerir a taxa de aprendizagem para uma melhor convergência.
close_mosaic 10 Desactiva o aumento dos dados do mosaico nas últimas N épocas para estabilizar o treino antes da conclusão. Definir como 0 desactiva esta funcionalidade.
resume False Reinicia o treinamento a partir do último ponto de verificação salvo. Carrega automaticamente os pesos do modelo, o estado do otimizador e a contagem de épocas, continuando o treinamento sem problemas.
amp True Permite a formação automática de precisão mista (AMP), reduzindo a utilização de memória e possivelmente acelerando a formação com um impacto mínimo na precisão.
fraction 1.0 Especifica a fração do conjunto de dados a utilizar para o treino. Permite o treino num subconjunto do conjunto de dados completo, útil para experiências ou quando os recursos são limitados.
profile False Permite a criação de perfis de ONNX e TensorRT velocidades durante o treino, útil para otimizar a implementação do modelo.
freeze None Congela as primeiras N camadas do modelo ou camadas especificadas por índice, reduzindo o número de parâmetros treináveis. Útil para ajuste fino ou aprendizagem por transferência.
lr0 0.01 Taxa de aprendizagem inicial (i.e. SGD=1E-2, Adam=1E-3) . O ajuste deste valor é crucial para o processo de otimização, influenciando a rapidez com que os pesos do modelo são actualizados.
lrf 0.01 Taxa de aprendizagem final como fração da taxa inicial = (lr0 * lrf), utilizado em conjunto com programadores para ajustar a taxa de aprendizagem ao longo do tempo.
momentum 0.937 Fator de momento para SGD ou beta1 para optimizadores Adam, que influencia a incorporação de gradientes passados na atualização atual.
weight_decay 0.0005 Termo de regularização L2, penalizando pesos grandes para evitar o sobreajuste.
warmup_epochs 3.0 Número de épocas para o aquecimento da taxa de aprendizagem, aumentando gradualmente a taxa de aprendizagem de um valor baixo para a taxa de aprendizagem inicial para estabilizar a formação numa fase inicial.
warmup_momentum 0.8 Momento inicial para a fase de aquecimento, ajustando-se gradualmente ao momento definido durante o período de aquecimento.
warmup_bias_lr 0.1 Taxa de aprendizagem para parâmetros de polarização durante a fase de aquecimento, ajudando a estabilizar o treinamento do modelo nas épocas iniciais.
box 7.5 Peso do componente de perda de caixa na função de perda, influenciando a importância dada à previsão exacta das coordenadas da caixa delimitadora.
cls 0.5 Peso da perda de classificação na função de perda total, afectando a importância da previsão correcta da classe em relação a outros componentes.
dfl 1.5 Peso da perda focal da distribuição, utilizado em determinadas versões de YOLO para uma classificação fina.
pose 12.0 Peso da perda de pose nos modelos treinados para a estimativa de pose, influenciando a ênfase na previsão exacta dos pontos-chave da pose.
kobj 2.0 Peso da perda de objetividade do ponto-chave nos modelos de estimação da pose, equilibrando a confiança na deteção com a precisão da pose.
label_smoothing 0.0 Aplica a suavização de rótulos, suavizando os rótulos rígidos para uma mistura do rótulo alvo e uma distribuição uniforme sobre os rótulos, pode melhorar a generalização.
nbs 64 Tamanho nominal do lote para normalização da perda.
overlap_mask True Determina se as máscaras de segmentação se devem sobrepor durante o treino, aplicável em tarefas de segmentação de instâncias.
mask_ratio 4 Rácio de downsample para máscaras de segmentação, que afecta a resolução das máscaras utilizadas durante o treino.
dropout 0.0 Taxa de desistência para regularização em tarefas de classificação, evitando o sobreajuste através da omissão aleatória de unidades durante o treino.
val True Permite a validação durante o treino, permitindo a avaliação periódica do desempenho do modelo num conjunto de dados separado.
plots False Gera e guarda gráficos de métricas de treino e validação, bem como exemplos de previsão, fornecendo informações visuais sobre o desempenho do modelo e a progressão da aprendizagem.

Nota sobre configurações de tamanho de lote

O batch O argumento pode ser configurado de três maneiras:

  • Tamanho fixo do lote: Define um valor inteiro (por exemplo, batch=16), especificando diretamente o número de imagens por lote.
  • Modo automático (60% GPU Memória): Utiliza batch=-1 para ajustar automaticamente o tamanho do lote para aproximadamente 60% de utilização da memória CUDA .
  • Modo automático com fração de utilização: Define um valor de fração (por exemplo, batch=0.70) para ajustar o tamanho do lote com base na fração especificada da utilização da memória GPU .

Definições de aumento e hiperparâmetros

As técnicas de aumento são essenciais para melhorar a robustez e o desempenho dos modelos YOLO , introduzindo variabilidade nos dados de treino, ajudando o modelo a generalizar melhor para dados não vistos. A tabela seguinte descreve o objetivo e o efeito de cada argumento de aumento:

Argumenta Tipo Predefinição Alcance Descrição
hsv_h float 0.015 0.0 - 1.0 Ajusta a tonalidade da imagem por uma fração da roda de cores, introduzindo variabilidade de cores. Ajuda o modelo a generalizar em diferentes condições de iluminação.
hsv_s float 0.7 0.0 - 1.0 Altera a saturação da imagem por uma fração, afectando a intensidade das cores. Útil para simular diferentes condições ambientais.
hsv_v float 0.4 0.0 - 1.0 Modifica o valor (brilho) da imagem por uma fração, ajudando o modelo a ter um bom desempenho em várias condições de iluminação.
degrees float 0.0 -180 - +180 Roda a imagem aleatoriamente dentro do intervalo de graus especificado, melhorando a capacidade do modelo para reconhecer objectos em várias orientações.
translate float 0.1 0.0 - 1.0 Traduz a imagem horizontal e verticalmente por uma fração do tamanho da imagem, ajudando a aprender a detetar objectos parcialmente visíveis.
scale float 0.5 >=0.0 Escala a imagem por um fator de ganho, simulando objectos a diferentes distâncias da câmara.
shear float 0.0 -180 - +180 Corta a imagem num grau especificado, imitando o efeito de objectos vistos de ângulos diferentes.
perspective float 0.0 0.0 - 0.001 Aplica uma transformação de perspetiva aleatória à imagem, melhorando a capacidade do modelo para compreender objectos no espaço 3D.
flipud float 0.0 0.0 - 1.0 Vira a imagem ao contrário com a probabilidade especificada, aumentando a variabilidade dos dados sem afetar as características do objeto.
fliplr float 0.5 0.0 - 1.0 Inverte a imagem da esquerda para a direita com a probabilidade especificada, útil para aprender objectos simétricos e aumentar a diversidade do conjunto de dados.
bgr float 0.0 0.0 - 1.0 Inverte os canais de imagem de RGB para BGR com a probabilidade especificada, útil para aumentar a robustez da ordenação incorrecta dos canais.
mosaic float 1.0 0.0 - 1.0 Combina quatro imagens de treino numa só, simulando diferentes composições de cenas e interacções de objectos. Altamente eficaz para a compreensão de cenas complexas.
mixup float 0.0 0.0 - 1.0 Mistura duas imagens e seus rótulos, criando uma imagem composta. Melhora a capacidade de generalização do modelo, introduzindo ruído de etiqueta e variabilidade visual.
copy_paste float 0.0 0.0 - 1.0 Copia objectos de uma imagem e cola-os noutra, útil para aumentar as instâncias de objectos e aprender a oclusão de objectos.
auto_augment str randaugment - Aplica automaticamente uma política de aumento predefinida (randaugment, autoaugment, augmix), optimizando as tarefas de classificação através da diversificação das características visuais.
erasing float 0.4 0.0 - 0.9 Apaga aleatoriamente uma parte da imagem durante o treino de classificação, encorajando o modelo a concentrar-se em características menos óbvias para o reconhecimento.
crop_fraction float 1.0 0.1 - 1.0 Corta a imagem de classificação para uma fração do seu tamanho para enfatizar as características centrais e adaptar-se às escalas dos objectos, reduzindo as distracções de fundo.

Estas definições podem ser ajustadas para satisfazer os requisitos específicos do conjunto de dados e da tarefa em causa. A experimentação de valores diferentes pode ajudar a encontrar a estratégia de aumento ideal que conduz ao melhor desempenho do modelo.

Informação

Para mais informações sobre as operações de reforço da formação, ver a secção de referência.

Registo

Ao treinar um modelo YOLOv8 , pode ser útil acompanhar o desempenho do modelo ao longo do tempo. É aqui que o registo entra em jogo. Ultralytics' YOLO fornece suporte para três tipos de registadores - Comet, ClearML, e TensorBoard.

Para usar um registrador, seleciona-o no menu suspenso no trecho de código acima e executa-o. O registador escolhido será instalado e inicializado.

Comet

Comet é uma plataforma que permite aos cientistas de dados e aos programadores acompanhar, comparar, explicar e otimizar experiências e modelos. Fornece funcionalidades como métricas em tempo real, diferenças de código e rastreio de hiperparâmetros.

Para utilizar Comet:

Exemplo

# pip install comet_ml
import comet_ml

comet_ml.init()

Não te esqueças de iniciar sessão na tua conta Comet no respetivo sítio Web e de obter a tua chave API. Terás de a adicionar às tuas variáveis de ambiente ou ao teu script para registar as tuas experiências.

ClearML

ClearML é uma plataforma de código aberto que automatiza o acompanhamento de experiências e ajuda na partilha eficiente de recursos. Foi concebida para ajudar as equipas a gerir, executar e reproduzir o seu trabalho de ML de forma mais eficiente.

Para utilizar ClearML:

Exemplo

# pip install clearml
import clearml

clearml.browser_login()

Depois de executares este script, terás de iniciar sessão na tua conta ClearML no browser e autenticar a tua sessão.

TensorBoard

O TensorBoard é um conjunto de ferramentas de visualização para TensorFlow. Permite-te visualizar o teu gráfico TensorFlow , traçar métricas quantitativas sobre a execução do teu gráfico e mostrar dados adicionais como imagens que passam por ele.

Para utilizares o TensorBoard em Google Colab:

Exemplo

load_ext tensorboard
tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

Para utilizar o TensorBoard localmente, executa o comando abaixo e visualiza os resultados em http://localhost:6006/.

Exemplo

tensorboard --logdir ultralytics/runs  # replace with 'runs' directory

Isto irá carregar o TensorBoard e direccioná-lo para o diretório onde os teus registos de treino estão guardados.

Depois de configurares o teu registador, podes prosseguir com o treino do teu modelo. Todas as métricas de treino serão automaticamente registadas na plataforma escolhida e podes aceder a esses registos para monitorizar o desempenho do teu modelo ao longo do tempo, comparar diferentes modelos e identificar áreas de melhoria.

FAQ

Como posso treinar um modelo de deteção de objectos utilizando Ultralytics YOLOv8 ?

Para treinar um modelo de deteção de objectos utilizando Ultralytics YOLOv8 , pode utilizar a API Python ou a CLI. Segue-se um exemplo de ambas:

Single-GPU e CPU Exemplo de formação

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

Para mais informações, consulta a secção Definições do comboio.

Quais são as principais características do modo de comboio do Ultralytics YOLOv8 ?

As principais características do modo de comboio do Ultralytics YOLOv8 incluem:

  • Descarrega automaticamente conjuntos de dados: Descarrega automaticamente conjuntos de dados padrão como COCO, VOC e ImageNet.
  • Suporte a váriosGPU : Escala o treinamento em várias GPUs para um processamento mais rápido.
  • Configuração de hiperparâmetros: Personaliza os hiperparâmetros por meio de arquivos YAML ou argumentos de CLI .
  • Visualização e monitorização: Acompanha em tempo real as métricas de formação para obteres melhores informações.

Estas características tornam o treino eficiente e personalizável de acordo com as tuas necessidades. Para mais informações, consulta a secção Características principais do Modo de Treino.

Como é que retomo a formação de uma sessão interrompida em Ultralytics YOLOv8 ?

Para retomar o treino a partir de uma sessão interrompida, define o botão resume argumento para True e especifica o caminho para o último ponto de controlo guardado.

Exemplo de formação de currículo

from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt

Para mais informações, consulta a secção " Retomar formações interrompidas ".

Posso treinar modelos YOLOv8 em chips Apple M1 e M2?

Sim, Ultralytics YOLOv8 suporta a formação em chips Apple M1 e M2 que utilizam a estrutura Metal Performance Shaders (MPS). Especifica 'mps' como o teu dispositivo de treino.

MPS Exemplo de formação

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolov8n.pt")

# Train the model on M1/M2 chip
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps

Para mais detalhes, consulta a secção de formação Apple M1 e M2 MPS .

Quais são as definições de formação comuns e como as configuro?

Ultralytics YOLOv8 permite-te configurar uma variedade de definições de treino, como o tamanho do lote, a taxa de aprendizagem, as épocas e muito mais, através de argumentos. Apresentamos-te uma breve descrição geral:

Argumenta Predefinição Descrição
model None Caminho para o ficheiro de modelo para treino.
data None Caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml).
epochs 100 Número total de épocas de treino.
batch 16 Tamanho do lote, ajustável em modo inteiro ou automático.
imgsz 640 Tamanho da imagem alvo para formação.
device None Dispositivo(s) informático(s) para treino como cpu, 0, 0,1, ou mps.
save True Permite guardar os pontos de controlo de treino e os pesos finais do modelo.

Para obteres um guia detalhado sobre as definições de treino, consulta a secção Definições de treino.



Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (15), dependabot (1), fcakyon (1), Laughing-q (2), Burhan-Q (1)

Comentários