.. include:: special.rst Anaconda ++++++++ Quelques mots sur Anaconda ========================== Pour ce TP, nous allons travailler avec **Anaconda** , distribution scientifique libre et open source de Python, disponible pour les principaux systèmes d'exploitation, Windows, Linux et MacOS. Anaconda utilise l'outil **conda** pour la gestion des paquets logiciels (librairies), la gestion des dépendances entre les paquets et la mise en place d'environnements de développements multiples séparés. Il existe aussi un autre gestionnaire de paquet, **pip**. Pour la mise en place d'un environnement python spécifique pour ce TP Deep Learning, nous avons besoin de réaliser quelques lignes de commandes sur le terminal Anaconda3, "Powershell Prompt (Anaconda3)", disponible sur le menu windows. Avant toute chose, si Anaconda est déjà installé sur votre machine locale, il est préférable de mettre à jour conda. Sur les postes de l'ESGT, nous ne pouvons le faire (permission administrateur requise). En revanche sur votre machine personnelle, cette mise à jour s'effectue via la commande ci-dessous. .. code :: python conda update --yes --name base --channel defaults conda Dans ce document toutes les comandes avec des arguments sont écrites avec un syntaxe explicite, précédés des deux signes "--" consécutifs. Il est possible d'utiliser une syntaxe implicite, plus concise, avec un seul signe "-" suivi uniquement de la première lettre de l'argument. Par exemple, la commande de mise à jour conda, écrite explicitement ci-dessus, peut s'écrire implicitement de la manière suivante : .. code :: python conda update -y -n base -c defaults conda Activation d'un environnement déjà installé =========================================== La création et l'installation d'un environnement python avec toutes les bibliothèques choisie s'effectue dans un répertoire. Pour s'affranchir de cette installation ( coûteuse en temps et surtout sur le trafic réseau de l'ESGT), il est possible de récupérer ce répertoire sur une machine, ayant le même système d'exploitation, où cette installation a déjà été réalisé. Ensuite, il suffit de pointer vers l'emplacement de ce répertoire dans votre arborescence pour l'activer via conda. Ainsi, sur une machine de la salle 107, notre environnement de travail pour ce TP, nommé ``deepLearning``, a été installé dans un réperoitres nommé ``envs`` ( l'arboresence est : ``envs/deepLearning``). Ce répertoire compressé , ``envs.zip`` est disponible sur Atlas. Après l'avoir copié sur le réseau à l'emplacement : ``\\atlas2\Cours\IG4\Photogrammétrie_TNP\DeepLearning\`` , puis collé sur le Disque local ``D:`` de votre machine, vous pourrez le décompresser. Si cette arborescence est bien respectée nous allons pouvoir activer cet environnement avec la commande : .. code :: python conda activate D:/DeepLearning/envs/deepLearning Avec cette méthode, il est nécessaire d'installer le kernel ipython, ce qui s'effectue de la manière suivante : .. code :: python ipython kernel install --user --name-deepLearning Toujours dans voutre terminal "Powershell Prompt (Anaconda3)" , vous pouvez naviguer dans l'arborescence de votre système avec la commande :code:`cd` ( pour :red:`c` hange :red:`d` irectory). Ainsi pour se placer dans votre répertoire de travail ``D:/DeepLearning`` , vous pouvez saisir : .. code :: python cd D:/DeepLearning Vous pouvez également lister le contenu de votre arborescence avec la commande ``ls`` (:red:`l` i :red:`s` t) .. code ::python ls Aujourd'hui nous allons travailler avec l'application web open-source **jupyter notebook** qui peut se lancer tout simplement avec la commande : .. code :: python jupyter notebook Il vous faudra bien prendre soin dans votre jupyter notebook de bien sélectionner le bon kernet ``noyau > Changer de noyau > deep Learning`` Installation d'un environnement à partir d'un fichier YAML ========================================================== À partir du fichier ``deepLearning_env.yml``, nous allons créer un environnement python, nommé deepLearning et installer Python avec toutes les librairies nécessaires pour ce TP. La volumétrie de cet environnement étant de 3.8 Go, il est nécessaire de s'assurer au préalable l'espace disponible sur le Disque local (C:). Si l'espace sur le Disque local (C:) est suffisant vous pouvez lancer la commande suivante .. code :: python conda env create --name deepLearning --file deepLearning_env.yml Activez l'environnement deepLearning ainsi créé avec : .. code :: python conda activate deepLearning Sinon, si l'espace sur le Disque local (C:) n'est pas suffisant , pas de panique , il est possible de préciser le répertoire d'installation notament sur le Disque local (D:). .. code :: python conda env create --prefix /envs/deepLearning --file env.yml Activez l'environnement deepLearning ainsi créé avec la commande suivante : (il est possible de faire un copié collé avec la souris en séléctionnant avec un simple clic gauche le texte voulue suivi d'un double clic droit) .. code :: python conda activate D:/DeepLearning/envs/deepLearning Quelques Commandes conda utiles =============================== Vous pouvez lister l'ensemble des environnement installés comme ceci: .. code :: python conda env list ou alors comme cela : .. code :: python conda info --envs Lister l'ensemble des librairies de votre environnement deepLearning ainsi installées : .. code :: python conda list --name deepLearning Pour installer un package ( par ex. package_name): .. code :: python conda install --yes package_name ou encore plus précisement avec la version souhaité (num_version) : .. code :: python conda install --yes package_name=num_version ou bien avec l'installateur pip (veillez à bien doubler l'égalité pour le numéro de version) : .. code :: python pip install package_name==num_version Pour désactiver son environnement : .. code :: python conda deactivate Pour supprimer un environnement (env_name) .. code :: python conde env remove --name env-name et si celui-ci a été créé avec l'option prefix : .. code :: python conda env remove --prefix /chemin_vers_le_dossier_d_installation Pour garantir la reproductibilité de vos codes pythons dans votre environnement Python, une excellente pratique est d'exporter son environnement ``my_env_name`` dans un fichier YAML : .. code :: python conda env export > my_env_name.yml Il existe de nombreuses options de commandes, d'options de configuration possibles. Un rapide aperçu possible avec l'aide conda : .. code :: python conda --help Pour plus d'information vous pourrez prendre le temps de consulter `le site officiel de conda <https://docs.conda.io/projects/conda/en/latest/>`_