Un exemple d'utilisation de datas pour s'entrainer
Jeux de données utilisables pour un Apprentissage Automatique
Je suis paresseux et je veux un exemple simple.
Les datas utilisées seront:
Letter Recognition Data Set
L'objectif n'est pas d'utiliser cet apprentissage pour reconnaître des lettres dans d'autres contextes: il faut faire l'apprentissage sur 16000 items, puis tester l'efficacité sur les 4000 restantes. C'est tout!
........ Initialisation 7: Création de l'objet ... 0: Learningrate: 0.021 Résultat 68.67 % 1: Learningrate: 0.0215 Résultat 73.97 % 2: Learningrate: 0.022 Résultat 72.2 % 3: Learningrate: 0.0225 Résultat 79.12 % 4: Learningrate: 0.023 Résultat 76.4 % 5: Learningrate: 0.0235 Résultat 76.58 % 6: Learningrate: 0.024 Résultat 70.3 % 7: Learningrate: 0.0245 Résultat 75.05 % 8: Learningrate: 0.025 Résultat 76.35 % 9: Learningrate: 0.0255 Résultat 77.72 % Initialisation 8: Création de l'objet ... 0: Learningrate: 0.021 Résultat 64.83 % 1: Learningrate: 0.0215 Résultat 71.47 % 2: Learningrate: 0.022 Résultat 76.2 % 3: Learningrate: 0.0225 Résultat 71.03 % 4: Learningrate: 0.023 Résultat 77.58 % 5: Learningrate: 0.0235 Résultat 75.75 % 6: Learningrate: 0.024 Résultat 78.95 % 7: Learningrate: 0.0245 Résultat 71.78 % 8: Learningrate: 0.025 Résultat 74.9 % 9: Learningrate: 0.0255 Résultat 71.1 % Initialisation 9: Création de l'objet ... 0: Learningrate: 0.021 Résultat 66.03 % 1: Learningrate: 0.0215 Résultat 71.4 % 2: Learningrate: 0.022 Résultat 69.45 % 3: Learningrate: 0.0225 Résultat 77.38 % 4: Learningrate: 0.023 Résultat 75.7 % 5: Learningrate: 0.0235 Résultat 77.5 % 6: Learningrate: 0.024 Résultat 76.55 % 7: Learningrate: 0.0245 Résultat 76.33 % 8: Learningrate: 0.025 Résultat 72.4 % 9: Learningrate: 0.0255 Résultat 77.72 % Temps de calcul par cycle: 3.21 s Meilleur résultat: learningrate = 0.0255 efficacité = 81.025
Voir
Temps de calcul par cycle: 18.05 s Meilleur résultat: learningrate=0.0208 efficacité=82.9
Le résultat est très mauvais, alors que c'était mieux avec le sémaphore et que le code est le même. Le chargement en RAM GPU prend du temps, qui n'est pas compensé par le calcul plus rapide, car il est trop court.
sudo pip3 install tensorflow
....... Epoch 7/10 500/500 [==============================] - 0s 815us/step - loss: 0.6596 - accuracy: 0.8134 Epoch 8/10 500/500 [==============================] - 0s 819us/step - loss: 0.6181 - accuracy: 0.8217 Epoch 9/10 500/500 [==============================] - 0s 817us/step - loss: 0.5782 - accuracy: 0.8306 Epoch 10/10 500/500 [==============================] - 0s 823us/step - loss: 0.5511 - accuracy: 0.8389 125/125 [==============================] - 0s 742us/step - loss: 0.5752 - accuracy: 0.8345 Testing ...... Efficacité sur les tests: 83.45 % Apprentissage en 4.9 secondes
....... 32/4000 [..............................] - ETA: 1s - loss: 0.6138 - acc: 0.812 3904/4000 [============================>.] - ETA: 0s - loss: 0.5522 - acc: 0.840 4000/4000 [==============================] - 0s 17us/sample - loss: 0.5527 - acc: 0.8403 Testing ...... Efficacité sur les tests: 84.03 % Apprentissage en 5.9 secondes
C'est rapide et efficace !
Il faut bien comprendre que le principe des calculs avec Tensorflow est le même que les scripts python.
Tensorflow est optimisé, et en plus tourne avec carte graphique ou non !!
Avec GPU, le chargement en RAM GPU prend du temps, qui n'est pas compensé par le calcul plus rapide, car il est trop court.