Pergunta

Atualmente, estou construindo uma biblioteca de rede neural. I se construiu como um gráfico de objeto para simplicidade. Eu estou querendo saber se alguém pode quantificar os benefícios de ir para uma abordagem baseada em array de desempenho. O que eu tenho agora trabalha muito bom para a construção de redes de perto de complexidade arbitrária. (backpropped) redes regulares, bem como redes recorrentes são suportados. Estou pensando em ter redes treinadas "compilação" em alguma forma "simples" como matrizes.

Eu só queria ver se alguém lá fora, tinha algum conselho prático ou experiência na construção de redes neurais que implantaram bem em produção. Existe alguma vantagem em ter o produto final ser matriz com base em vez de objeto gráfico baseado?

footprint de memória P.S é menos importante do que a velocidade.

Foi útil?

Solução

Isso tudo depende o idioma que você está usando -. Eu suponho que você está usando um derivado C

Em minhas implementações que eu encontrei a abordagem objeto gráfico muito superior. Há alguma desvantagem em velocidade, mas a facilidade de manutenção supera chama o objeto de pesquisa. Isso tudo depende se você está procurando velocidade de treinamento ou resolver velocidade, bem ... Eu estou supondo que você está mais preocupado com a velocidade de treinamento?

Você pode sempre acabam micro-otimizar algumas das questões chamada de objeto se necessário.

Considerando a sua motivação secundária de sub-compensação as redes, eu acho que é ainda mais importante ser objeto com base -. Torna-se muito mais fácil para tirar partes do trabalho

Outras dicas

As pessoas começaram a usar técnicas de GPGPU em AI, e ter a sua rede neural na forma matricial poderia alavancar as muito mais rápido ops matriz em sua placa de vídeo típico.

No entanto, você implementá-lo, você deve nunca se esqueça:

Apenas certifique-se que você não tem que maximizar vez de minimizar.

http://xkcd.com/534/

Tem sido um tempo, mas eu me lembro que a velocidade é geralmente apenas um problema durante o treinamento da rede neural.

Eu não tenho nenhuma experiência pessoal de escrever tal uma biblioteca, mas eu posso ligá-lo a alguns populares projetos de código aberto que talvez pudesse aprender. (Pessoalmente, eu iria usar apenas uma dessas bibliotecas existentes.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top