Seit ich einen neuen PC gekauft habe, habe ich mit Docker eine Python-Umgebung erstellt und CNN ausgeführt.
Da Docker fast ein Anfänger ist, werde ich diese Gelegenheit nutzen, um zu studieren.
Wie der Fluss diesmal
MacOS Catalina version 10.15.5
Docker version 19.03.8
anaconda ist eine Open-Source-Plattform, die einen vollständigen Satz wesentlicher Pakete für Praktiker der Datenwissenschaft enthält. Dies ist ein offizielles Bild von anaconda3, daher bin ich dankbar, es zu verwenden.
https://hub.docker.com/r/continuumio/anaconda3/
Starten Sie jetzt Docker und erhalten Sie das Image von 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
ist ein Befehl zum Abrufen eines Docker-Images.
Als nächstes erstellen wir einen Container.
% docker run --name anaconda -it -p 8888:8888 -v /Users/xxxx/docker/anaconda:/home continuumio/anaconda3 /bin/bash
(base) root@xxxx:/# conda list
Die Bedeutung jedes Befehls und jeder Option ist wie folgt.
run
: Erstellt einen Container.
--name [name]
: Legt den Namen des Containers fest.
-it
: Sie können im Container arbeiten.
-p [Host-seitige Portnummer: Container-Portnummer]
: Binden Sie den Container-Port an die Host-Seite.
-v [Host-seitiges Verzeichnis: Container-seitiges Verzeichnis]
: Host-seitiges Verzeichnis im Container
Montieren
Lassen Sie uns die Pakete überprüfen, die auf anaconda3 vorinstalliert sind.
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
Der Befehl docker
kann nicht verwendet werden, da er sich im anaconda3-Container befindet.
Schauen Sie sich das Paket in der "Conda-Liste" an, die auf dem Anaconda-Terminal verfügbar ist.
Da bei anaconda3 von Anfang an kein Tensorflow installiert ist, verwenden Sie "conda install"
Installieren Sie Tensorflow und die umgebenden Pakete.
base) root@xxxx:/# conda install tensorflow
Sie können das Jupyter-Notizbuch, das Sie während Ihres Studiums geliebt haben, über Ihren Browser öffnen.
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
Standardmäßig kann Docker vor dem Erstellen eines CNN nur bis zu 2 GB Speicher verwenden. Der Versuch, mit einem CNN zu trainieren, läuft daher über. Also werde ich die Einstellung so ändern, dass sie bis zu 7G verwendet werden kann.
Schließlich werden wir das CNN bauen. Laden Sie für den Datensatz das Standard-CIFAR10 herunter und verwenden Sie eine dreischichtige Faltungsschicht, eine Adam-Methode zur Optimierung und einen Kreuzentropiefehler für die Verlustfunktion.
Ich konnte Tensorflow ohne Probleme importieren und der Speicher lief nicht über. Dies ist das Ende der Umgebungskonstruktion!
Ich berührte Docker mit einem leichten Gefühl, aber es war zu tief und ich war süchtig nach dem Sumpf ... Einführung von Tensorflow in anaconda3 und Öffnen von Jupyter Notebook, was für erfahrene Docker-Benutzer wahrscheinlich recht schwierig war. Es gibt keinen Verlust bei Docker, daher möchte ich es aktiv nutzen. Vorläufig konnte ich eine Umgebung erstellen, in der Tensorflow ausgeführt werden kann. Daher werde ich von nun an verschiedene vertiefte Lernmethoden in dieser Umgebung ausprobieren.
Recommended Posts