DESCONTINUAÇÃO DO PROJETO. Este projeto não será mais mantido pela Intel. A Intel não fornecerá nem garantirá o desenvolvimento ou suporte para este projeto, incluindo, entre outros, manutenção, correções de bugs, novos lançamentos ou atualizações. Patches para este projeto não são mais aceitos pela Intel. Se você tem uma necessidade contínua de usar este projeto, está interessado em desenvolvê-lo de forma independente ou gostaria de manter patches para a comunidade, crie seu próprio fork do projeto.
neon é a estrutura de aprendizagem profunda de referência da Intel, comprometida com o melhor desempenho em todos os hardwares. Projetado para facilidade de uso e extensibilidade.
Para iteração rápida e exploração de modelos, neon tem o desempenho mais rápido entre as bibliotecas de aprendizado profundo (velocidade 2x de cuDNNv4, consulte benchmarks).
Usamos neon internamente na Intel Nervana para resolver os problemas de nossos clientes em vários domínios. Estamos contratando para diversas funções. Inscreva-se aqui!
Veja os novos recursos em nosso último lançamento. Queremos destacar que o neon v2.0.0+ foi otimizado para um desempenho muito melhor em CPUs ao habilitar a Intel Math Kernel Library (MKL). O componente DNN (Deep Neural Networks) do MKL usado pelo neon é fornecido gratuitamente e baixado automaticamente como parte da instalação do neon.
Em uma máquina Mac OSX ou Linux, digite o seguinte para baixar e instalar o neon (usuários do conda consulte o guia) e use-o para treinar seu primeiro perceptron multicamadas. Para forçar uma instalação de python2 ou python3, substitua make
abaixo por make python2
ou make python3
.
git clone https://github.com/NervanaSystems/neon.git
cd neon
make
. .venv/bin/activate
A partir do neon v2.2.0, o branch master do neon será atualizado semanalmente com o trabalho em andamento para o próximo lançamento. Confira uma tag de lançamento (por exemplo, "git checkout v2.2.0") para uma versão estável. Ou simplesmente verifique a tag de lançamento "mais recente" para obter a versão estável mais recente (ou seja, "git checkout mais recente")
A partir da versão 2.4.0, reativamos a instalação do pip. Neon pode ser instalado usando o nome do pacote nervananeon.
pip install nervananeon
Observa-se que o aeon precisa ser instalado separadamente. A versão mais recente v2.6.0 usa aeon v1.3.0.
Aviso
Entre neon v2.1.0 e v2.2.0, o formato do arquivo de manifesto aeon foi alterado. Ao atualizar do neon <v2.2.0, os manifestos devem ser recriados usando scripts de ingestão (na pasta de exemplos) ou atualizados usando este script.
python examples/mnist_mlp.py
O backend GPU é selecionado por padrão, então o comando acima é equivalente a se um recurso GPU compatível for encontrado no sistema:
python examples/mnist_mlp.py -b gpu
Quando nenhuma GPU está disponível, o backend de CPU otimizado (MKL) agora é selecionado por padrão a partir do neon v2.1.0, o que significa que o comando acima agora é equivalente a:
python examples/mnist_mlp.py -b mkl
Se você estiver interessado em comparar o back-end mkl padrão com o back-end de CPU não otimizado, use o seguinte comando:
python examples/mnist_mlp.py -b cpu
Alternativamente, um arquivo yaml pode ser usado para executar um exemplo.
neon examples/mnist_mlp.yaml
Para selecionar um backend específico em um arquivo yaml, adicione ou modifique uma linha que contenha backend: mkl
para habilitar o backend mkl ou backend: cpu
para habilitar o backend da CPU. O back-end da GPU é selecionado por padrão se uma GPU estiver disponível.
A Intel Math Kernel Library aproveita os recursos de paralelização e vetorização dos sistemas Intel Xeon e Xeon Phi. Quando o hyperthreading está habilitado no sistema, recomendamos a seguinte configuração KMP_AFFINITY para garantir que os threads paralelos sejam mapeados 1:1 para os núcleos físicos disponíveis.
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=compact,1,0,granularity=fine
ou
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=verbose,granularity=fine,proclist=[0- < Number of Physical Cores > ],explicit
Para obter mais informações sobre KMP_AFFINITY, verifique aqui. Encorajamos os usuários a tentar e estabelecer suas próprias configurações de melhor desempenho.
A documentação completa do neon está disponível aqui. Alguns pontos de partida úteis são:
Para quaisquer bugs ou solicitações de recursos, por favor:
Para outras perguntas e discussões, poste uma mensagem no grupo de usuários neon do Google
Estamos lançando o neon sob uma licença Apache 2.0 de código aberto. Convidamos você a nos contatar com seus casos de uso.