[PYTHON] [Explication pour les débutants] Syntaxe et concept de base de TensorFlow

Syntaxe de base et concept de TensorFlow

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).

Lien de référence

Qu'est-ce que TensorFlow

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. 20.CPU_Full.JPG

Syntaxe de base et concept de TensorFlow

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é. 30.ComputationalGraph01.JPG

Résumé

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. 30.ComputationalGraph02.JPG

Recommended Posts

[Explication pour les débutants] Syntaxe et concept de base de TensorFlow
[Explication pour les débutants] Tutoriel TensorFlow MNIST (pour les débutants)
[Explication pour les débutants] Tutoriel TensorFlow Deep MNIST
Implémentation et description à l'aide de XGBoost pour les débutants
Grammaire de base Python pour les débutants
[Explication pour les débutants] Introduction au traitement du pliage (expliqué dans TensorFlow)
[Explication pour les débutants] Introduction au traitement du pool (expliqué dans TensorFlow)
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
Traduction TensorFlow MNIST pour les débutants en ML
Notes de syntaxe de base pour le script shell
Tutoriel TensorFlow MNIST pour les débutants en ML
Tutoriel TensorFlow -MNIST pour les débutants en ML
[Explication pour les débutants] Mécanisme de détection de visage OpenCV et pratique (détecter MultiScale)
Installation d'Elasticsearch et fonctionnement de base pour ubuntu
Fonctionnement Linux pour les débutants Résumé des commandes de base
Notes supplémentaires pour TensorFlow MNIST pour les débutants en ML
Les débutants lisent "Introduction à TensorFlow 2.0 pour les experts"
Différence entre Ruby et Python (syntaxe de base)
SublimeText2 et SublimeLinter - Vérification de la syntaxe pour Python3 -
Raisonnement causal et recherche causale par Python (pour les débutants)
[Python / Chrome] Paramètres de base et opérations de scraping
Principes de base de la technologie de reconnaissance d'image (pour les débutants)
Réalisation du didacticiel TensorFlow MNIST pour débutants en ML
Installation de TensorFlow sur Windows Easy pour les débutants en Python
Histoire de base de l'héritage en Python (pour les débutants)
Janken Poi en Python pour les débutants (réponses et explications)
Organisation des procédures de base pour l'analyse des données et le traitement statistique (4)
J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.
Débutants! Commandes et utilisation de base de Linux!
Caffe Model Zoo pour les débutants [Classification selon l'âge et le sexe]
Organisation des procédures de base pour l'analyse des données et le traitement statistique (2)
Exercice Python pour les débutants # 1 [Types de données de base / instructions If]
[Pour les débutants] Apprenez la grammaire de base Python gratuitement en 5 heures!
Python # Comment vérifier le type et le type pour les super débutants
Découvrez la fonction d'impression et les chaînes de python pour les débutants.
Explication des outils et commandes de package pour le système d'exploitation Linux
[Pour les débutants] Django Commandes fréquemment utilisées et collection de références