Notes d'introduction à l'apprentissage profond de Pytorch 1 (version Pycharm)

Notes d'introduction à l'apprentissage profond de Pytorch 1 (version Pycharm, pièges d'installation de l'environnement, projets de configuration)

Exigences environnementales et configuration de l'environnement

environnement requis

La version Pycharm (Pro) ne devrait pas être trop ancienne, juste deux ou trois ans

Anaconda3+Python (version = 3.9) Il existe de nombreux tutoriels de niveau nounou sur l'installation d'anaconda (portail de tutoriels : https://blog.csdn.net/qq_45344586/article/details/124028689), ou vous pouvez effectuer une recherche par vous-même

Pytorche

CUDA11+

CUDNN

Configuration de l'environnement et quelques points à noter

Accédez à la page de téléchargement du site officiel de Pytorch (portail : https://pytorch.org/get-started/locally/), copiez les instructions dans Exécuter cette commande sur le terminal Pycharm ou sur la commande système pour lancer le téléchargement (ce n'est pas comme un traditionnel site Web La même méthode est utilisée pour cliquer pour télécharger);

Si l'ordinateur dispose d'un GPU, il est recommandé d'installer CUDA+CuDNN, vérifiez la méthode : Gestionnaire des tâches – Performances, comme indiqué dans la figure ci-dessous :

Insérer la description de l'image ici

Concernant l'installation de CUDA+CuDNN, il existe également des tutoriels bien rédigés et détaillés sur Internet. Il suffit de suivre le tutoriel pour les étapes générales (portail des tutoriels : https://blog.csdn.net/dreamerzc/article/details/120599278 ), parlons ici de quelques pièges auxquels il faut prêter attention dans la nouvelle version de pytorch :

  • De nombreux tutoriels sur Internet vous apprennent à installer des versions autour de CUDA10.2. Si vous êtes sous un système Windows, la nouvelle version de Pytorch ne supporte plus la version GPU CUDA10, il faut donc télécharger la version CUDA11+ , sinon on attendra vous avez terminé de télécharger CUDA10.2 Par conséquent, vous trouverez ceci lorsque vous entrez sur le site Web de pytorch :Insérer la description de l'image ici

  • Les versions majeures de CUDA sont rétrocompatibles au sein de cette version . Par exemple, si vous téléchargez CUDA11.7, alors lorsque vous installez Pytorch, n'hésitez pas à choisir celle qui s'adapte à la version 11.6 ; mais si vous téléchargez CUDA11.3, vous ne le faites pas. Il n'est pas nécessaire d'installer Pytorch, l'installation est adaptée à la version 11.6, et l'installation est adaptée aux versions de pytorch inférieures ou égales à 11.3 ;

  • Lors de l'installation de CUDA, faites attention à suivre le tutoriel pour vérifier si votre carte graphique est compatible avec le CUDA que vous souhaitez télécharger, c'est très important, sinon de gros problèmes pourraient survenir ! !

  • Il est recommandé de créer un nouvel environnement conda avant d'entrer la commande de téléchargement (commande : conda create -n Environment name python=3.x) pour éviter certains conflits de version de package avec pytorch ;

Si votre ordinateur ne dispose pas d'un GPU de la série NVIDIA ou si vous souhaitez utiliser un CPU pour exécuter Pytorch , vous pouvez directement choisir de télécharger la version du CPU depuis le site officiel de Pytorch (ou rechercher l'image pytorch Tsinghua en ligne). pas besoin d'être téléchargé et installé ;

Compréhension initiale de Pytorch

Fonction dir() et fonction help()

Ces deux fonctions peuvent vous aider à comprendre l'utilisation et les précautions de chaque module et les fonctions de chaque module dans le processus d'utilisation de Pytorch. Ce sont des usages officiels et formels, ce qui est très pratique ;

usage:

  • Ouvrez la console de pycharm, importez le package torch (notez qu'il ne s'agit pas d'import pytorch mais d'import torch), puis entrez dir(torch). Vous pouvez voir de nombreux modules à l'intérieur de pytorch :Insérer la description de l'image ici

  • Pour chaque module torch, vous pouvez également utiliser la fonction dir pour le subdiviser, tout comme un dossier contenant des dossiers (prenons torch.sum comme exemple) :Insérer la description de l'image ici

  • Jetons à nouveau un coup d'œil à la fonction d'aide et saisissons help(sum) :Insérer la description de l'image ici

Vous pouvez voir qu’il existe ici des méthodes d’utilisation et des exemples très détaillés. Dans l'apprentissage de Python (pas seulement de pytorch), nous pouvons utiliser ces deux fonctions pour nous aider à comprendre l'utilisation de divers packages, bibliothèques et fonctions sans passer par Baidu ;

Chargement des données

Formulaires communs de composition des données

De manière générale, les données d'entraînement comportent deux éléments : les données elles-mêmes et l'étiquette ;

  • Le premier type, l'étiquette, est relativement simple, par exemple, il ne contient que des informations de classification, puis les données peuvent être nommées directement avec l'étiquette ;
  • Deuxièmement, si vous rencontrez des données de PNL ou de traitement d'image, l'étiquette peut être plus compliquée et il n'est pas pratique de la nommer directement. À ce stade, les données peuvent se trouver dans un dossier et l'étiquette est enregistrée dans un autre dossier. Le nom de chaque étiquette est le même que celui des données. Le nom du fichier correspond à

Compréhension initiale de l'ensemble de données

Apprenez-le maintenant et utilisez-le maintenant. Utilisez directement la fonction d'aide pour afficher les informations fonctionnelles de l'ensemble de données (peu importe si vous pensez que c'est trop compliqué, vous pouvez simplement ignorer ce code et lire ci-dessous) :

help(torch.utils.data.Dataset)
Help on class Dataset in module torch.utils.data.dataset:
class Dataset(typing.Generic)
 |  An abstract class representing a :class:`Dataset`.
 |  
 |  All datasets that represent a map from keys to data samples should subclass
 |  it. All subclasses should overwrite :meth:`__getitem__`, supporting fetching a
 |  data sample for a given key. Subclasses could also optionally overwrite
 |  :meth:`__len__`, which is expected to return the size of the dataset by many
 |  :class:`~torch.utils.data.Sampler` implementations and the default options
 |  of :class:`~torch.utils.data.DataLoader`.
 |  
 |  .. note::
 |    :class:`~torch.utils.data.DataLoader` by default constructs a index
 |    sampler that yields integral indices.  To make it work with a map-style
 |    dataset with non-integral indices/keys, a custom sampler must be provided.
 |  
 |  Method resolution order:
 |      Dataset
 |      typing.Generic
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  __add__(self, other: 'Dataset[T_co]') -> 'ConcatDataset[T_co]'
 |  
 |  __getitem__(self, index) -> +T_co
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __orig_bases__ = (typing.Generic[+T_co],)
 |  
 |  __parameters__ = (+T_co,)
 |  
 |  ----------------------------------------------------------------------
 |  Class methods inherited from typing.Generic:
 |  
 |  __class_getitem__(params) from builtins.type
 |  
 |  __init_subclass__(*args, **kwargs) from builtins.type
 |      This method is called when a class is subclassed.
 |      
 |      The default implementation does nothing. It may be
 |      overridden to extend subclasses.

Cela implique l'utilisation de nombreuses fonctions intégrées. Je publierai un article spécial plus tard pour expliquer ces méthodes de fonction en détail. Ici, nous présentons d'abord les trois fonctions les plus couramment utilisées.

Lorsque nous créons un ensemble de données, nous devons d'abord créer une classe pour l'ensemble de données, disons qu'elle s'appelle Mydataset ;

Trois fonctions couramment utilisées (nécessitent les bases de la programmation orientée objet) :

  • fonction d'initialisation init : initialise la classe. Cette fonction sera exécutée lors de la création d'une instance. Elle est généralement utilisée pour définir certaines variables "globales", etc., similaires au constructeur de CPP ;
  • Fonction getitem : obtenir des informations sur les données (adresse, etc.), la forme par défaut est def getitem (self, item), généralement modifiée en def getitem (self, idx) ;
  • Fonction len : obtenir des informations telles que la longueur des données ;
chronométré

Il doit être mentionné ici que si la fonction getitem doit obtenir l'adresse du fichier de données (telle qu'une adresse d'image), elle doit utiliser la bibliothèque du système d'exploitation de Python pour transformer l'adresse du fichier en liste :

import os  //使用os
dir_path = "文件夹路径,可以相对可以绝对,windows系统下需要注意斜线转义"
img_path_list = os.listdir(dir_path)  //将文件夹中的所有图片变成列表

Démontrez-le :

  • Copier un dossier d'image (données) dans le projet

  • Faites un clic droit sur le dossier d'images et sélectionnez le chemin de copie, absolu ou relatif (une astuce pour simplifier l'opération, vous évitant d'avoir à accéder à l'explorateur de fichiers pour copier) ;Insérer la description de l'image ici

  • Entrez le code dans la console Python (notez que le chemin du fichier doit soit ajouter des barres parallèles, soit ajouter un r avant les guillemets pour éviter les échappements) : [Le transfert d'image du lien externe a échoué. Le site source peut avoir un mécanisme anti-sangsue. Il est recommandé de sauvegarder l'image et de la télécharger directement.Insérer la description de l'image ici

Avec ce tableau de noms de fichiers, nous pouvons facilement accéder à chaque fichier de données via l'index du tableau. Le deuxième paramètre de la fonction getitem a été changé en idx pour faciliter l'accès à l'index. Le plus important est de développer de bonnes habitudes ~

Conclusion

Cet article enregistre principalement le processus général d'installation de l'environnement pytorch et de chargement des données. L'article suivant détaillera l'exemple de code et l'explication du chargement des données ;

groupe, nous pouvons facilement accéder à chaque fichier de données via l'index du tableau, et le deuxième paramètre de la fonction getitem a été remplacé par idx pour faciliter l'accès à l'index. Le plus important est de développer de bonnes habitudes ~

Conclusion

Cet article enregistre principalement le processus général d'installation de l'environnement pytorch et de chargement des données. L'article suivant détaillera l'exemple de code et l'explication du chargement des données ;

Cet article est plus orienté vers la nouvelle direction. En même temps, je suis également en train d'apprendre pytorch. S'il y a des omissions, vous êtes invités à apporter des corrections ~

Je suppose que tu aimes

Origine blog.csdn.net/qq_45882682/article/details/125637238
conseillé
Classement