Qu'est-ce que Pytorch?
Pytorch est un cadre d'apprentissage en profondeur open source pour la construction d'architectures de réseau et d'autres techniques de haut niveau comme RNN, CNN et LSTM. Il est utilisé par les chercheurs, les entreprises et les communautés ML et IA.
Le groupe de recherche sur l'intelligence artificielle de Facebook est principalement responsable de son développement.
Qu'est-ce que le tenseur (approche basée sur les mathématiques)?
Exercez une force sur une surface et regardez comment elle déviée dans différentes directions. Vous pouvez vous attendre à ce qu'il se déplace dans le même sens que la force, mais cela ne se produit pas toujours; La raison en est que le matériau n'est pas uniforme dans toutes les directions; il peut avoir une certaine structure, comme un cristal ou des couches. Une force, qui est un vecteur, est votre point de départ. (Les directions X, Y et Z ont chacune trois composants.) Vous recevez un vecteur de déviation (mouvement en x, y et z). La force, cependant, est dans le sens inverse du mouvement! Prétendons que la réponse est proportionnée à la force, ce qui signifie doubler la force deux fois le mouvement. C'est ce qu'on appelle une «réaction linéaire."
Comment pouvez-vous mettre tout cela en termes mathématiques? Avec un tenseur, bien sûr. Considérez un tenseur comme un instrument mathématique qui prend un vecteur (comme la force) et renvoie un nouveau vecteur (le mouvement). Les tenseurs ne sont nécessaires que lorsque les deux vecteurs pointent dans des directions opposées.
Itérations, lots, EPOCS. Que sont-ils en termes de réseaux de neurones?
Le nombre d'itérations (indiqué par n Ici) est le nombre de fois qu'un lot d'instances de formation estime le gradient et met à jour les paramètres du réseau neuronal.
La taille du lot B fait référence au nombre d'instances de formation employées dans une seule itération. Ceci est généralement utilisé lorsque le nombre d'instances de formation est assez grande, et il est généralement efficace de diviser toutes les données en mini-lots. Chaque lot a la taille: 1< B < N.
Pour utiliser les données de formation complètes une fois, il faut n (N/ /B) itérations. C'est ce qu'est une époque. Donc (N/ /B) *E, où E Le nombre d'époches est-il le nombre total de fois que les paramètres sont modifiés.
Il existe trois types de descente de dégradé. Il y a un compromis entre eux car on peut donner une bonne précision mais est lent. D'un autre côté, on est plus rapide, mais il ne garantit pas une bonne précision:
N = b, une époque est égale à une itération en mode lot.
Mode mini-lots: 1 < B < N, with N/B iterations per epoch.
B = 1, une époque prend n itérations dans le modèle stochastique de la descente de gradient.
Implémentation de DatalOader sur Fashion MNIST Dataset
Chargement de l'ensemble de données de mode MNIST de Pytorch
Fashion-Mnist est un ensemble de données d'image qui comprend 60 000 formation et 10 000 instances de test. Chaque exemple comprend une image en niveaux de gris 28 x 28 avec une étiquette de l'une des dix catégories. Vous trouverez ci-dessous quelques paramètres que vous satisferons lors du chargement de l'ensemble de données.
racine: Ceci est le répertoire dans lequel l'ensemble de données est enregistré.
former: indique que les données formées ou testées doivent être chargées.
télécharger: Si les données ne sont pas disponibles chez Root, elles sont téléchargées via Internet.
transform et cible_transform: Ces paramètres spécifient les transformations de fonctionnalité et d'étiquette.
Importer une torcheCoutume Ensemble de données de vos fichiers
importosDans le code ci-dessus, nous voyons trois méthodes importantes:
__init__: Cette fonction est appelée lorsque l'objet de jeu de données est créé. Les deux transformations, ainsi que le répertoire contenant les images et le fichier d'annotations, sont configurées.
__Len__: Cette fonction vous renvoie la longueur de l'ensemble de données ou le nombre d'échantillons dans l'ensemble de données.
__obtenir l'article__: Cette méthode nous donne l'échantillon présent à un index.
Formation avec DatalOader
Stocker les données dans les chargeurs de données. Les chargeurs de données sont itérables qui vous permet de passer les échantillons un à la fois au moment de la formation et même de mélanger les données après que tous les lots soient traités.
de la torche.utils.Importation de données DatalOaderItérer le dataloader
# Afficher l'image et l'étiquette.Sortir
Caractéristiques La forme du lot actuel est la torche.Taille ([32, 1, 28, 28])
La forme des étiquettes de la forme actuelle du lot est la torche.Taille ([32])
Étiquette: 5
Chaque itération du code ci-dessus renvoie un lot de fonctionnalités de formation et d'étiquettes de formation pour chaque itération. Pour éviter un sur-ajustement, les données sont mélangées après que tous les lots ont été traités.
Implémentation de chargeur de données sur un ensemble de données personnalisé
# Importation des bibliothèques que nous utiliseronsSortir
0 Tensor ([0, 4, 9, 15, 14])Conclusion
Nous avons suivi la mise en œuvre de DatalOader de Pytorch pour gérer la formation de nos données. Nous réalisons maintenant avec quelle facilité nous pouvons gérer les lots, les mélanges, l'itération de nos ensembles de données à l'aide de DatalOader. Cela aide à une meilleure analyse de nos modèles et finalement les améliorer.