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.
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.
Tutoriel Tens of Flow utilisé dans cet article
Tout d'abord, importez la bibliothèque
Structure de TensorFlow (bibliothèque générale)
Exemples de packages, de modules et de fonctions
Que sont les classes, les méthodes et les instances?
Exemples de classes, méthodes et instances
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)
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.
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.
À 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.
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.
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.
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.
À 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.
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
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.