Modele hot dog

Nous avons utilisé cette occasion pour essayer d`autres architectures neuronales populaires comme VGG, mais un problème est resté. Aucun d`entre eux ne pouvait confortablement s`adapter à un iPhone. Ils ont consommé trop de mémoire, ce qui a conduit à des plantages d`application, et serait parfois prend jusqu`à 10 secondes pour calculer, ce qui n`était pas idéal d`un point de vue UX. Beaucoup de choses ont été tentées d`atténuer cela, mais à la fin, ces architectures étaient tout simplement trop grandes pour fonctionner efficacement sur mobile. L`application a été développée en interne par le spectacle, par un seul développeur, fonctionnant sur un seul ordinateur portable et GPU attaché, en utilisant des données à la main-organisée. À cet égard, il peut donner une idée de ce qui peut être réalisé aujourd`hui, avec un nombre limité de temps et de ressources, par des entreprises non-techniques, des développeurs individuels, et des amateurs semblables. Dans cet esprit, cet article tente de donner un aperçu détaillé des étapes impliquées pour aider les autres à construire leurs propres applications. Bien que nous ayons probablement consacré plus de ressources d`ingénierie à la reconnaissance des hotdogs que n`importe qui d`autre, l`application échoue toujours de manière horrible et/ou subtile. Nous avons choisi REACT native pour construire le prototype car il nous donnerait un bac à sable facile à expérimenter, et nous aiderait à prendre rapidement en charge de nombreux appareils. L`expérience a fini par être un bon et nous avons gardé REACT native pour le reste du projet: il n`a pas toujours rendre les choses faciles, et la conception de l`application a été délibérément limitée, mais à la fin REACT native a fait le travail. Mon modèle est un réseau neuronal convolutionnel avec trois couches convolutionnelles suivies de deux couches entièrement connectées.

Son basé sur le CNN du modèle d`angle de direction pour la construction de voitures Auto-conduite construit par comma.ai. Parce que si son assez bon pour conduire une voiture, il est assez bon pour détecter un Hot-Dog. Pour ce faire, laissez écrire un peu plus de scripts pour faire ce travail pour nous, d`abord nous avons juste besoin d`obtenir une copie des images que nous voulons supprimer et de les placer dans un dossier appelé «invalide». Merci à: Mike juge, Alec Berg, Clay Tarver, Todd Silverstein, Jonathan Dotan, Lisa Schomas, Amy Solomon, Dorothy Street & Rich Toyon, et tous les écrivains de l`émission-l`application n`existerait tout simplement pas sans eux. Meaghan, Dana, David, Jay, et tout le monde à HBO. Balance Venture Partners & GitLab. Rachel Thomas et Jeremy Howard & Fast AI pour tout ce qu`ils m`ont appris, et pour gentiment revoir un brouillon de ce post. Découvrez leur cours d`apprentissage en ligne gratuit, c`est génial! JP Simard pour son aide sur iOS. Et enfin, l`équipe TensorFlow & r/MachineLearning pour leur aide et leur inspiration.

Après l`ajout de la normalisation par lots et ELU à SqueezeNet, nous avons pu former le réseau neuronal qui atteignent 90% + précision lors de l`entraînement à partir de zéro, cependant, ils étaient relativement fragiles signifiant que le même réseau serait excessif dans certains cas, ou underfit dans d`autres lorsque confrontés à des tests de la vie réelle. Même en ajoutant d`autres exemples au jeu de données et en jouant avec l`augmentation de donnée n`a pas réussi à fournir un réseau qui répondait aux attentes. Le modèle inclut les couches ELU et l`abandon pour introduire la non-linéarité: à ce stade, nous avons décidé de mordre la balle et obtenir quelque chose a commencé avec keras, une bibliothèque d`apprentissage profond qui fournit plus agréable, plus facile à utiliser abstractions sur le dessus de TensorFlow, y compris assez outils de formation impressionnants, et une option class_weights qui est idéal pour faire face à ce genre de déséquilibre de jeu de données que nous avons affaire avec. Le réseau a été formé en utilisant un MacBook Pro 2015 et un GPU externe attaché (eGPU), spécifiquement une NVIDIA GTX 980 TI (nous serions probablement acheter un 1080 TI si nous étions à partir d`aujourd`hui). Nous avons pu former le réseau sur des lots de 128 images à la fois. Le réseau a été formé pour un total de 240 Epochs, ce qui signifie que nous avons couru toutes les images 150k à travers le réseau 240 fois. Cela a pris environ 80 heures. Au cours de cette phase, nous avons commencé à expérimenter avec le réglage de l`architecture du réseau neuronal. En particulier, nous avons commencé à utiliser la normalisation par lots et à essayer différentes fonctions d`activation.