Je vais essayer Getting Started With TensorFlow sur la page officielle et expliquer les points. Après avoir compris ce contenu, il est rapide de comprendre si vous faites le tutoriel de "[Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)". C'était flou).
- Installer TensorFlow sur Windows Easy pour les débutants Python
- [Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)
- TensorFlow Tutorial MNIST (pour les débutants) visualisé avec TensorBoard
- Mémo API TensorFlow
- [Introduction à TensorBoard] Visualisez le traitement TensorFlow pour approfondir la compréhension
- [Introduction à TensorBoard: image] TensorFlow Visualisez le traitement d'image pour approfondir la compréhension
- [Introduction à TensorBoard: Projecteur] Rendre le traitement TensorFlow cool
- [Explication pour les débutants] Tutoriel TensorFlow Deep MNIST
- Les traits du visage de Yuki Kashiwagi pour comprendre TensorFlow [Partie 1]
TensorFlow Il s'agit d'une bibliothèque open source créée pour l'apprentissage automatique par le célèbre Google. ** "Tensor" de TensorFlow est simplement un tableau multidimensionnel ** (un terme général, pas spécifique à Google). Pour plus d'informations sur Tensor, consultez Tensols que vous devez connaître avant de démarrer TensorFlow (Ajout: à des rubriques plus générales) L'article est génial. TensorFlow est une bibliothèque qui gère bien ce Tensor. Et nous utilisons au mieux le CPU et le GPU pour optimiser l'apprentissage automatique. Par exemple, si vous exécutez le didacticiel d'apprentissage en profondeur de MNIST sur un PC à 2 cœurs, il épuisera presque immédiatement le processeur, comme indiqué dans la figure ci-dessous.
J'expliquerai le concept en examinant la syntaxe de base de TensorFlow.
Computational Graph TensorFlow est basé sur le concept de Computational Graph, et les commandes sont divisées en deux catégories: la construction et l'exécution de Computational Graph.
Par exemple, si vous définissez deux constantes et les sortez, en langage C, ce sera comme suit (cela peut être un peu différent car c'est une vieille mémoire, mais ressentez-le comme ça. ).
const double node1 = 3.0;
const double node2 = 4.0;
printf("%f, %f", node1, node2);
Si vous l'écrivez dans TensorFlow comme s'il s'agissait d'un langage normal, ce sera comme suit.
node1 = tf.constant(3.0, dtype=tf.float32)
node2 = tf.constant(4.0) # also tf.float32 implicitly
print(node1, node2)
Cependant, ce qui est affiché ci-dessus est le résultat ci-dessous. Les constantes 3.0 et 4.0 ne sont pas générées. Cela est dû au fait que la syntaxe ci-dessus est ** "Construire un graphe de calcul" **. ** Pensez au "graphe de calcul" comme un plan de traitement qui prend en compte le parallélisme et l'ordre de traitement **.
Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32)
Pour afficher réellement la valeur constante, vous devez ** "Exécuter le graphe de calcul" ** avec la syntaxe suivante.
sess = tf.Session()
print(sess.run([node1, node2]))
Maintenant, enfin 3.0 et 4.0 sont affichés comme ci-dessous.
[3.0, 4.0]
Cela ressemble à ceci lorsqu'il est illustré.
Comparé au traitement du langage normal, il ressemble à la figure ci-dessous. Il se caractérise par deux étapes de construction (planification) et d'exécution par Computational Graph. S'il s'agit d'un processus qui enregistre simplement des enregistrements dans la base de données, le traitement du langage normal qui n'utilise qu'un seul processeur est plus simple et meilleur, mais s'il est compliqué et a un grand mérite de parallélisation tel que l'apprentissage automatique ou l'apprentissage profond, TensorFlow serait plus approprié. D'après mon expérience, Spark, Hadoop, SAP HANA, etc. peuvent être traités en parallèle sous une forme similaire à Computational Graph.
Recommended Posts