Depuis que j'ai acheté un nouveau PC, j'ai utilisé Docker pour créer un environnement python et exécuter CNN.
Puisque Docker est presque un débutant, je profiterai de cette occasion pour étudier.
Comme le flux cette fois
MacOS Catalina version 10.15.5
Docker version 19.03.8
anaconda est une plate-forme open source avec un ensemble complet de packages essentiels pour les praticiens de la science des données. Ceci est une image officielle d'anaconda3, je suis donc reconnaissant de l'utiliser.
https://hub.docker.com/r/continuumio/anaconda3/
Maintenant, démarrez Docker et obtenez l'image d'Anaconda3.
% docker pull continuumio/anaconda3
Using default tag: latest
latest: Pulling from continuumio/anaconda3
68ced04f60ab: Pull complete
57047f2400d7: Pull complete
8b26dd278326: Pull complete
Digest: sha256:6502693fd278ba962af34c756ed9a9f0c3b6236a62f1e1fecb41f60c3f536d3c
Status: Downloaded newer image for continuumio/anaconda3:latest
docker.io/continuumio/anaconda3:latest
pull
est une commande pour obtenir une image Docker.
Ensuite, nous allons créer un conteneur.
% docker run --name anaconda -it -p 8888:8888 -v /Users/xxxx/docker/anaconda:/home continuumio/anaconda3 /bin/bash
(base) root@xxxx:/# conda list
La signification de chaque commande et option est la suivante.
run
: crée un conteneur.
--name [nom]
: Définit le nom du conteneur.
-it
: Vous pouvez opérer à l'intérieur du conteneur.
-p [numéro de port côté hôte: numéro de port du conteneur]
: lie le port du conteneur au côté hôte.
-v [Répertoire côté hôte: répertoire côté conteneur]
: répertoire côté hôte dans le conteneur
Monter
Vérifions les packages préinstallés sur anaconda3.
base) root@xxxx:/# conda list
# packages in environment at /opt/conda:
#
# Name Version Build Channel
_ipyw_jlab_nb_ext_conf 0.1.0 py37_0
_libgcc_mutex 0.1 main
alabaster 0.7.12 py37_0
anaconda 2020.02 py37_0
anaconda-client 1.7.2 py37_0
anaconda-navigator 1.9.12 py37_0
anaconda-project 0.8.4 py_0
argh 0.26.2 py37_0
asn1crypto 1.3.0 py37_0
astroid 2.3.3 py37_0
astropy 4.0 py37h7b6447c_0
atomicwrites 1.3.0 py37_1
attrs 19.3.0 py_0
.
.
.
yaml 0.1.7 had09818_2
yapf 0.28.0 py_0
zeromq 4.3.1 he6710b0_3
zict 1.0.0 py_0
zipp 2.2.0 py_0
zlib 1.2.11 h7b6447c_3
zstd 1.3.7 h0b5b093_0
La commande docker
ne peut pas être utilisée car elle se trouve dans le conteneur anaconda3.
Regardez le paquet dans la liste conda
disponible sur le terminal anaconda.
Comme anaconda3 n'a pas installé tensorflow depuis le début, utilisez conda install
Installez tensorflow et ses packages environnants.
base) root@xxxx:/# conda install tensorflow
Vous pouvez ouvrir le bloc-notes Jupyter que vous utilisiez lorsque vous étiez à l'université à partir de votre navigateur.
base) root@xxxx:/# jupyter notebook --port 8888 --ip=0.0.0.0 --allow-root
.
.
.
To access the notebook, open this file in a browser:
file:///root/.local/share/jupyter/runtime/nbserver-12-open.html
Or copy and paste one of these URLs:
http://81127b992594:8888/?token=22ab4d7b42e6629eb76dad08af9c8e6b1d5b59e0f0050f73
or http://127.0.0.1:8888/?token=22ab4d7b42e6629eb76dad08af9c8e6b1d5b59e0f0050f73
Par défaut, Docker ne peut utiliser que 2 Go de mémoire avant de créer un CNN, donc essayer de s'entraîner avec un CNN débordera. Je vais donc modifier le paramètre pour qu'il puisse être utilisé jusqu'à 7G.
Enfin, nous allons construire le CNN. Pour l'ensemble de données, téléchargez le CIFAR10 standard et utilisez une couche de convolution à trois couches, une méthode d'optimisation adam et une erreur d'entropie croisée pour la fonction de perte.
J'ai pu importer tensorflow sans aucun problème, et la mémoire n'a pas débordé, c'est donc la fin de la construction de l'environnement!
J'ai touché Docker avec une sensation légère, mais c'était trop profond et j'étais accro au marais ... Présentation de tensorflow à anaconda3 et ouverture de Jupyter Notebook, ce qui était probablement assez difficile pour les utilisateurs expérimentés de Docker. Il n'y a pas de perte à faire Docker, je voudrais donc l'utiliser activement. Pour le moment, j'ai pu créer un environnement capable d'exécuter tensorflow, je vais donc essayer divers deep learning dans cet environnement à partir de maintenant.
Recommended Posts