Espaços de pesquisa pré-criados

Um espaço de pesquisa de arquitetura neural é fundamental para alcançar um bom desempenho. Define todas as arquiteturas ou parâmetros potenciais a explorar e pesquisar. A pesquisa de arquitetura neural oferece um conjunto de espaços de pesquisa predefinidos no ficheiro search_spaces.py:

  • Mnasnet
  • Efficientnet_v2
  • Nasfpn
  • Spinenet
  • Spinenet_v2
  • Spinenet_mbconv
  • Spinenet_scaling
  • Randaugment_detection
  • Randaugment_segmentation
  • AutoAugmentation_detection
  • AutoAugmentation_segmentation

Além disso, também fornecemos os seguintes exemplos de espaço de pesquisa:

O notebook do Lidar publica os resultados da validação no notebook. O resto do código dos espaços de pesquisa do PyTorch destina-se a ser usado apenas como exemplo e não para testes de referência.

Cada um destes espaços de pesquisa tem um exemplo de utilização específico:

  • O espaço de pesquisa MNasNet é usado para tarefas de classificação de imagens e deteção de objetos e baseia-se na arquitetura MobileNetV2.
  • O espaço de pesquisa EfficientNetV2 é usado para tarefas de deteção de objetos. A EfficientNetV2 adiciona novas operações, como Fused-MBConv. Consulte o documento do EfficientNetV2 para ver mais detalhes.
  • O espaço de pesquisa NAS-FPN é normalmente usado para a deteção de objetos. Pode encontrar uma descrição detalhada nesta secção.
  • A família de espaços de pesquisa SpineNet inclui spinenet, spinenet_v2, spinenet_mbconv e spinenet_scaling. Normalmente, também são usadas para a deteção de objetos. Pode encontrar uma descrição detalhada da SpineNet nesta secção.

    • spinenet é o espaço de pesquisa base nesta família, oferecendo candidatos a blocos residual e bottleneck durante a pesquisa.
    • spinenet_v2 oferece uma versão mais pequena de spinenet, o que pode ajudar a uma convergência mais rápida, oferecendo apenas candidatos a bloqueio de gargalo durante a pesquisa.
    • O spinenet_mbconv oferece uma versão do spinenet para plataformas móveis e usa candidatos a blocos mbconv durante a pesquisa.
    • Normalmente, spinenet_scaling é usado depois de encontrar uma boa arquitetura usando o espaço de pesquisa spinenet para aumentar ou diminuir a escala de acordo com os requisitos de latência. Esta pesquisa é feita em elementos como o tamanho da imagem, o número de filtros, o tamanho do filtro e o número de repetições de blocos.
  • Os espaços de pesquisa RandAugment e AutoAugment permitem-lhe pesquisar operações de aumento de dados ideais para deteção e segmentação, respetivamente. Nota: o aumento de dados é normalmente usado depois de já ter sido pesquisado um bom modelo. Pode encontrar uma descrição detalhada da DataAugmentation nesta secção.

  • Espaço de pesquisa do Lidar para nuvens de pontos 3D mostra a pesquisa integral no extrator de caraterísticas, na estrutura, no descodificador e no cabeçalho de deteção.

  • O exemplo do espaço de pesquisa de segmentação de imagens médicas 3D do PyTorch mostra a pesquisa no codificador UNet e no descodificador UNet.

Na maioria das vezes, estes espaços de pesquisa predefinidos são suficientes. No entanto, se necessário, pode personalizar estes existentes ou adicionar um novo conforme necessário através da biblioteca PyGlove. Veja o código de exemplo para especificar o espaço de pesquisa do NAS-FPN.

Espaço de pesquisa do MNasnet e EfficientNetV2

Os espaços de pesquisa MNasNet e EfficientV2 definem diferentes backboneopções de criaçãoConvOps, como ConvOps, KernelSize e ChannelSize. O backbone pode ser usado para diferentes tarefas, como classificação e deteção.

A estrutura da EfficientNet.

Espaço de pesquisa NAS-FPN

O espaço de pesquisa NAS-FPN define o espaço de pesquisa nas camadas FPN que ligam diferentes níveis de funcionalidades para a deteção de objetos, conforme mostrado na figura seguinte.

A estrutura da NAS-FPN.

Espaço de pesquisa SpineNet

O espaço de pesquisa da SpineNet permite pesquisar uma estrutura com funcionalidades intermédias com permutações de escala e ligações entre escalas, alcançando um desempenho de vanguarda na deteção de objetos de uma fase no COCO com 60% menos computação e superando as contrapartes da ResNet-FPN em 6% AP. Seguem-se as ligações das camadas de base na arquitetura SpineNet-49 pesquisada.

A estrutura da SpineNet.

Espaço de pesquisa de aumento de dados

Depois de já ter pesquisado a melhor arquitetura, também pode pesquisar uma melhor política de aumento de dados. O aumento de dados pode melhorar ainda mais a precisão da arquitetura pesquisada anteriormente.

A plataforma de pesquisa de arquitetura neural oferece espaços de pesquisa de aumento de dados RandAugment e AutoAugment para duas tarefas: (a) randaugment_detection para deteção de objetos e (b) randaugment_segmentation para segmentação. Escolhe internamente entre uma lista de operações de aumento, como contraste automático, distorção ou rotação, a aplicar aos dados de preparação.

Espaço de pesquisa do RandAugment

O espaço de pesquisa do RandAugment é configurado por dois parâmetros: (a) N, que é o número de operações de aumento sucessivas a aplicar a uma imagem, e (b) M, que é a magnitude de TODAS essas operações. Por exemplo, a imagem seguinte mostra um exemplo em que são aplicadas N=2 operações (Cisalhamento e Contraste) com uma M=magnitude diferente a uma imagem.

RandAugment aplicado a uma imagem.

Para um determinado valor de N, a lista de operações é escolhida aleatoriamente no banco de operações. A pesquisa de aumento encontra o melhor valor de N e M para a tarefa de preparação em questão. A pesquisa não usa uma tarefa de proxy e, por isso, executa as tarefas de preparação até ao fim.

Espaço de pesquisa do AutoAugment

O espaço de pesquisa do AutoAugment permite-lhe pesquisar choice, magnitude e probability de operações para otimizar a preparação do modelo. O espaço de pesquisa do AutoAugment permite-lhe pesquisar as opções da política, o que o RandAugment não suporta.