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:
- Espaço de pesquisa de lidar para nuvens de pontos 3D
- Exemplo de espaço de pesquisa de segmentação de imagens médicas 3D do PyTorch
- Exemplo de espaço de pesquisa do MnasNet do PyTorch
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
espinenet_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 despinenet
, 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 dospinenet
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 pesquisaspinenet
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 backbone
opções de criaçãoConvOps
, como ConvOps
, KernelSize
e ChannelSize
. O backbone
pode ser usado para diferentes tarefas, como classificação e deteção.
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.
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.
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.
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.