OK, une nouvelle réponse à une vieille question mais encore plus pertinente maintenant. La question que vous posez concerne la précision finie, normalement le domaine de l'analyse du signal et des mathématiques expérimentales.
Les flotteurs à double précision (DP) nous permettent de prétendre qu'il n'existe pas de problèmes de précision finie, comme nous le faisons avec la plupart des problèmes mathématiques du monde réel. En mathématiques expérimentales, il n'y a pas de faux semblant.
Les flotteurs à simple précision (SP) nous obligent à considérer le bruit de quantification. Si nos modèles d'apprentissage automatique rejettent intrinsèquement le bruit, comme les réseaux de neurones (NN), les réseaux de convolution (CNN), les réseaux résiduels (ResN), etc., alors SP donne le plus souvent des résultats similaires à DP.
Les flotteurs à demi-précision (HP) (désormais pris en charge dans la boîte à outils cuda 7.5) nécessitent la prise en compte des effets de quantification (bruit et arrondi). Très probablement, nous verrons bientôt des flotteurs HP dans les boîtes à outils d'apprentissage automatique courantes.
Il existe des travaux récents pour créer des calculs de précision inférieure dans des flottants ainsi que des nombres de précision fixes. L'arrondi stochastique a permis à la convergence de fonctionner avec les CNN tandis que la solution diverge sans elle. Ces articles vous aideront à améliorer votre compréhension des problèmes liés à l'utilisation de nombres à précision finie dans l'apprentissage automatique.
Pour répondre à vos questions:
SP n'est pas si mal. Comme vous le faites remarquer, c'est deux fois plus rapide, mais cela vous permet également de mettre plus de couches en mémoire. Un avantage est d'économiser des frais généraux pour obtenir des données sur et hors du GPU. Les calculs plus rapides et les frais généraux inférieurs entraînent des temps de convergence plus courts. Cela dit, HP, pour certains problèmes, sera meilleur dans certaines parties du réseau et pas dans d'autres.
- Il me semble que de nombreuses boîtes à outils d'apprentissage automatique gèrent les SP et les DP. Peut-être que quelqu'un d'autre avec un éventail plus large d'expérience avec les boîtes à outils ajoutera son nickel.
- Python prendra en charge ce que prend en charge la boîte à outils gpu. Vous ne voulez pas utiliser de types de données python car vous exécuterez alors un script interprété sur le processeur.
Notez que la tendance dans les réseaux de neurones est maintenant d'aller avec des couches très profondes, avec des exécutions de plus de quelques jours sur les clusters de GPU les plus rapides.