Résumé des modules et des classes dans Python-TensorFlow2-

introduction

Nous avons résumé les relations entre les packages, modules, classes, méthodes, fonctions et instances Python. Pour résumer, j'ai fourni un didacticiel TensorFlow 2.0 à titre d'exemple.

Qui est la cible de cet article

Le public cible de cet article est: -Je veux vérifier les relations entre les packages, modules, classes, méthodes, fonctions et instances Python. ・ Je suis nouveau sur Python et je ne comprends pas la structure des bibliothèques telles que TensorFlow.

Contenu approximatif de cet article

  1. Tutoriel Tens of Flow utilisé dans cet article

  2. Tout d'abord, importez la bibliothèque

  3. Structure de TensorFlow (bibliothèque générale)

  4. Exemples de packages, de modules et de fonctions

  5. Que sont les classes, les méthodes et les instances?

  6. Exemples de classes, méthodes et instances

1. Tutoriel Tens of Flow utilisé dans cet article

Dans cet article, nous utiliserons le didacticiel TensorFlow 2.0 suivant comme exemple. TensorFlow Tutorial Le code complet est ci-dessous.

Code du didacticiel TensorFlow


from __future__ import absolute_import, division, print_function, unicode_literals
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test,  y_test, verbose=2)

2. Tout d'abord, importez la bibliothèque

Pour utiliser une bibliothèque (telle que TensorFlow), vous devez importer la bibliothèque. Aussi, avant d'importer la librairie, il est nécessaire de l'installer au préalable (pip install etc.), mais comme il y a déjà beaucoup d'articles sur ce domaine, je vais l'omettre. Voici la partie d'importation de TensorFlow extraite du didacticiel.

importer une partie


import tensorflow as tf

Ce que cela fait, c'est que je veux utiliser le code du programme pour importer (tensorflow dans ce cas) dans le programme que j'exécute (le code du tutoriel montré au chapitre 1), alors préparez-vous (exécutez à l'avance). C'est une image qui vous dit de la prendre. De plus, bien qu'il soit écrit en tf ici, il est difficile de taper tensorflow chaque fois que vous utilisez la fonction de TensorFlow, donc je déclare simplement qu'il sera abrégé en tf la prochaine fois.

3. Structure de TensorFlow (bibliothèque de logiciels générale)

Non limitées à TensorFlow, les bibliothèques de logiciels sont composées des éléments suivants. -Package: Un groupe de codes dans lequel plusieurs "modules" différents sont collectés est appelé un "package". -Module: Un fichier .py (code de programme python) qui contient des "classes" et des "fonctions". -Classe: Un groupe de "méthodes" est appelé une "classe". -Méthode: Une fonction définie dans la "classe". La différence par rapport à une fonction normale sera expliquée au bas de l'article. -Fonction: Un résumé de certains traitements. Par exemple, une fonction qui ajoute 100 fois ou une fonction qui calcule le volume à partir de la longueur de trois côtés d'une boîte. -Instance: La classe reçoit la cible à traiter. Il est expliqué en détail ci-dessous.

Si vous ne lisez que ce qui précède, vous ne le comprendrez pas, alors jetez un œil à la figure ci-dessous. Vous pouvez voir les deux points suivants.

図1.png

  1. Nous facilitons généralement la gestion des fichiers avec une structure hiérarchique (création de dossiers à l'intérieur de dossiers). De même, les packages et les modules gèrent les fonctions et les méthodes (bien que les méthodes soient regroupées avec des classes) qui font partie du traitement de données réel d'une manière facile à comprendre.
  2. La partie proprement dite du traitement des données est décrite dans Fonctions et méthodes.

4. Exemples de packages, de modules et de fonctions

À titre d'exemple, montrons la fonction load_data de TensorFlow dans une structure hiérarchique dans la figure ci-dessous. Les chiffres à gauche et à droite montrent la même chose.

図2.png

Comme vous pouvez le voir sur (exemple) dans la figure ci-dessus, load_data est une fonction dans mnist (module) dans les ensembles de données (module) dans keras (module) dans tensorflow (package). Et dans le code du programme Python, il est indiqué par. (Point) pour aller à la hiérarchie inférieure.

Ainsi, le code de chargement de l'ensemble de données d'apprentissage automatique ci-dessous, extrait du tutoriel, Tout d'abord, le nom mnist se voit attribuer un module appelé mnist dans les ensembles de données dans keras dans tensorflow. En d'autres termes, nous créons un nouveau nom, mnist, et assignons mnist (module) dans tensorflow. Dans la deuxième ligne, le mnist créé dans la première ligne est ajouté avec. (Dot), et une fonction appelée load_data () dans la hiérarchie inférieure est utilisée. Au fait, () signifie que rien n'est donné comme argument.

Partie de chargement de données


mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

Le code ci-dessus a donc exactement la même signification que le code ci-dessous.

Partie de chargement de données (lorsque la déclaration mnist est omise)


(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()

La structure des modules et des fonctions de tensorflow comme indiqué dans la figure ci-dessus peut être facilement examinée sur le site officiel ci-dessous. * HP est la version 2.1. TensorFlow Core v2.1.0 Module: tf.keras.datasets

Si vous ouvrez la page tf.keras.datasets avec le lien ci-dessus, vous pouvez obtenir les informations comme indiqué dans la figure ci-dessous. Les chiffres correspondent aux chiffres ci-dessous. ➀ tensorflow Les informations hiérarchiques de tous les packages et modules sont affichées dans une liste. ➁ Les tf.keras.datasets actuellement ouverts sont affichés comme des modules. ➂ Il montre quels modules se trouvent dans la hiérarchie un niveau en dessous des tf.keras.datasets actuellement ouverts.

図3.png

5. Que sont les classes, les méthodes et les instances?

Les classes, méthodes et instances sont des éléments incontournables pour comprendre TensorFlow lors de l'apprentissage de Python. Les packages, modules et fonctions semblent être suffisants pour gérer le traitement d'un programme de manière facile à lire, mais des classes existent pour réaliser l'idée d'orientation objet en Python. Il existe de nombreux articles sur l'orientation des objets, veuillez donc y jeter un œil. Ici, je n'expliquerai que la différence entre la façon d'utiliser les classes, les méthodes et les instances et les fonctions.

Premièrement, le rôle d'une méthode est presque le même que celui d'une fonction, et elle effectue un certain traitement ensemble. La seule différence majeure est que la fonction est utilisée seule, tandis que la méthode est utilisée comme un ensemble avec la classe, comme le montre la figure ci-dessous. Pour utiliser la méthode, il est nécessaire de créer quelque chose comme une boîte de la classe à l'instance, qui stocke la cible à traiter par la méthode et les données après traitement, comme indiqué dans la figure ci-dessus. Les fonctions, en revanche, peuvent effectuer des opérations directement sur des variables ordinaires.

図4.png

Cela ressemble à ceci lorsqu'il est écrit dans le code. Le cours peut être difficile à comprendre à première vue, veuillez donc consulter l'article sur la description du cours.

Créer une instance à partir d'une classe et exécuter une méthode


Instance = Class(Arguments de classe) # クラスからインスタンスを作成しています。Arguments de classeが空()Souvent.
Instance.method(Arguments de méthode) #La méthode est en cours de traitement pour l'instance créée.

Par conséquent, pour utiliser la méthode, il est nécessaire de créer une instance à partir de la classe à l'avance (contrairement à une fonction), de sorte que le code suivant entraînera une erreur. C'est une grande différence avec une fonction. * Il existe des méthodes spéciales, mais je pense que ce n'est pas grave si vous ne les connaissez pas au début.

Exécuter la méthode sans créer d'instance


Class.method(Arguments de méthode) #Une erreur se produira.

6. Exemples de classes, méthodes et instances

À titre d'exemple, la figure suivante montre la structure de la classe Sequential de TensorFlow et les méthodes de compilation, d'ajustement et d'évaluation en dessous. Les chiffres à gauche et à droite montrent la même chose.

図5.png

Et, dans le code de la partie de chargement de données suivante extraite du didacticiel, Sequential est une classe, compilez, ajustez, évaluez est une méthode et model est Sequential est une instance. Tout d'abord, créez une instance appelée modèle à l'aide d'une classe appelée Sequential, et pour cette instance, utilisez les méthodes compile (définition de la méthode d'apprentissage), fit (apprentissage du modèle) et évalue (évaluation du modèle) dans la hiérarchie sous la classe appelée Sequential. Nous traitons dans l'ordre. * À propos, tf.keras.layers.Flatten etc. dans la liste des arguments séquentiels sont des classes et sont utilisés pour définir la structure du modèle d'apprentissage automatique.

Exemples de classes et d'instances dans le didacticiel TensorFlow


model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test,  y_test, verbose=2)

La structure des classes et méthodes tensorflow et leurs arguments peuvent être confirmés sur le site officiel ci-dessous, tout comme les fonctions. TensorFlow Core v2.1.0 Class Method: tf.keras.model.Sequential

À la fin

Prenant TensorFlow comme exemple, j'ai essayé d'organiser la bibliothèque de manière très approximative. J'espère que cet article vous aidera à étudier Python. * Si vous faites une erreur, merci de nous le faire savoir dans les commentaires.

Les références

TensorFlow TensorFlow Tutorial Python tutorial

Recommended Posts

Résumé des modules et des classes dans Python-TensorFlow2-
Résumé des outils et bibliothèques OSS créés en 2016
Récapitulatif du traitement de la date en Python (datetime et dateutil)
Liste des informations sur les arguments de méthode pour les classes et les modules en Python
Résumé des différentes opérations dans Tensorflow
Résumé des index et des tranches Python
Les modules et packages en Python sont des "espaces de noms"
Résumé des méthodes fréquemment utilisées chez les pandas
Résumé de diverses instructions for en Python
Résumé des pierres d'achoppement lors de l'installation de CaboCha
Séparation de la conception et des données dans matplotlib
Résumé des méthodes intégrées, etc. de la liste Python
Projet Euler # 1 "Multiple de 3 et 5" en Python
Organisez les modules et les packages Python dans le désordre
Résumé de la correspondance entre les opérations de tableau ruby et python
Résumé des différences entre PHP et Python
Résumé de la façon d'importer des fichiers dans Python 3
Organiser la signification des méthodes, des classes et des objets
Résumé des outils utilisés dans la ligne de commande vol.8
Résumé de l'utilisation de MNIST avec Python
Installation de Python 3 et Flask [Résumé de la construction de l'environnement]
Résumé des outils utilisés dans la ligne de commande vol.5
L'en-tête est mal aligné avec read_csv () et read_table () de Pandas
Résumé des fonctions d'évaluation utilisées dans l'apprentissage automatique
Coexistence d'Anaconda 2 et Anaconda 3 dans Jupyter + Bonus (Julia)
Résumé relatif aux E / S de python et fortran
Explication de la distance d'édition et de l'implémentation en Python
Résumé du traitement pickle et unpickle des classes définies par l'utilisateur
Résumé des opérations Excel utilisant OpenPyXL en Python
[Introduction à Python] Résumé des fonctions et méthodes qui apparaissent fréquemment en Python [Format du problème]
"Régression linéaire" et "Version probabiliste de la régression linéaire" en Python "Régression linéaire de Bayes"
Le mémo Python le plus simple au Japon (classes et objets)
Résumé des outils nécessaires pour analyser les données en Python
Traitement pleine largeur et demi-largeur des données CSV en Python
À propos de l'erreur d'importation de numpy et scipy dans anaconda
Calcul de l'écart type et du coefficient de corrélation en Python
Résumé des commandes Linux (UNIX) fournies avec Progate
Python - Explication et résumé de l'utilisation des 24 meilleurs packages
[Python] Erreur de type: résumé des causes et des solutions pour "Aucun type"
[python] Récupère la liste des classes définies dans le module
Différence entre Ruby et Python en termes de variables
Obtenez une compréhension abstraite des modules et des packages Python
Exemple d'obtention du nom du module et du nom de la classe en Python
Modules Nest dans Boost.Python
Liste des modules python
Héritage multiple de classes
Résumé de Tensorflow / Keras
Résumé de l'utilisation de pyenv
Paquets et modules Python
Résumé des opérations sur les chaînes
Chargement dynamique des modules
Résumé des arguments Python
Résumé de la méthode d'essai
Résumé des modèles de prototypes d'introduction aux modèles de conception appris en langage Java
Résumé de base des opérations de données dans Python Pandas - Deuxième moitié: agrégation de données
Sauvegarde et restauration à chaud des machines virtuelles dans Hyper-V Server 2019
Types de prétraitement dans le traitement du langage naturel et leur puissance