Question

Je construis actuellement une bibliothèque de réseau de neurones. Je l'ai construit comme un graphe d'objet pour plus de simplicité. Je me demande si quelqu'un peut quantifier les avantages en termes de performances d'une approche basée sur les baies. Ce que j'ai maintenant fonctionne très bien pour la construction de réseaux d'une complexité proche de la complexité arbitraire. Les réseaux normaux (backpropped) ainsi que les réseaux récurrents sont pris en charge. Je considère avoir des réseaux formés & compiler " dans certains " plus simple " forme tels que des tableaux.

Je voulais juste savoir si quelqu'un avait des conseils pratiques ou de l'expérience dans la construction de réseaux de neurones bien déployés en production. Y a-t-il un avantage à ce que le produit final soit basé sur un tableau plutôt que sur un graphique objet?

L'empreinte mémoire de P.S est moins importante que la vitesse.

Était-ce utile?

La solution

Tout dépend de la langue que vous utilisez - je suppose que vous utilisez un dérivé du C.

Dans mes implémentations, j'ai trouvé l'approche du graphe des objets bien supérieure. Il existe un compromis entre la vitesse, mais la facilité de maintenance l'emporte sur les appels de recherche d'objet. Tout dépend de si vous recherchez une vitesse d'entraînement ou une vitesse de résolution aussi ... Je suppose que vous êtes le plus préoccupé par la vitesse d'entraînement?

Si nécessaire, vous pouvez toujours micro-optimiser certains problèmes d’appel aux objets.

Compte tenu de votre motivation secondaire de sous-réseau des réseaux, je pense qu’il est encore plus important d’être basé sur les objets - cela facilite beaucoup la tâche de supprimer des parties du travail.

Autres conseils

Les gens ont commencé à utiliser les techniques GPGPU dans l'IA, et disposer de votre réseau neuronal sous forme de matrice pourrait tirer parti des opérations matricielles beaucoup plus rapides de votre carte graphique classique.

Quelle que soit la manière dont vous l'implémentez, vous ne devez jamais oublier:

Assurez-vous simplement de ne pas le maximiser au lieu de le minimiser.

http://xkcd.com/534/

Cela fait un moment, mais je me souviens que la vitesse n'est généralement qu'un problème lors de la formation du réseau de neurones.

Je n'ai pas d'expérience personnelle dans la rédaction d'une telle bibliothèque, mais je peux vous mettre en rapport avec des projets open source populaires dont vous pourriez peut-être apprendre. (Personnellement, je n’utiliserais que l’une de ces bibliothèques existantes.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top