GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So führen Sie Jupiter, Keras, Tensorflow und andere ML-Bibliotheken in Docker aus

Dieser Artikel setzt die Docker-bezogene Artikelserie fort und zeigt, wie man einen Ubuntu 20.04 LTS-basierten Docker-Container für maschinelles Lernen erstellt. Wir installieren in der Umgebung:Python 3, Jupyter, Keras, Tensorflow, TensorBoard, Pandas, Sklearn, Matplotlib, Seaborn, pyyaml, h5py. Bereiten Sie Ihre persönliche ML-Umgebung in 3 Minuten vor, ohne Docker-Image-Erstellungszeit!

Aktualisierung 2020

Ich habe den Container auf die Ubuntu 20.04 LTS-Basis aktualisiert und den Docker-Build-Prozess beschleunigt. Jetzt bauen wir OpenCV nicht aus dem Quellcode, sondern installieren es von apt .

Die Einrichtung der Umgebung ist eine häufige Frage, wenn Sie mit dem Erlernen von maschinellem Lernen (ML) beginnen. In diesem Artikel zeige ich Ihnen, wie Sie Ihren eigenen Docker-Container erstellen, einschließlich der folgenden Frameworks für einen komfortablen Start:

  • Python 3
  • Jupyter
  • Keras
  • Tensorflow
  • TensorBoard
  • Pandas
  • Sklearn
  • Matplotlib
  • Seaborn
  • pyyaml
  • h5py

Dies sind die TOP 10 der am häufigsten verwendeten Python-Frameworks für Data Science, und Sie finden die meisten davon in jedem Anleitungsartikel im Internet. Im nächsten Artikel (How to build Python Data Science Docker container based on Anaconda) zeige ich, wie man das gleiche Image auf der Grundlage der Anaconda-Distribution erstellt.

Anforderungen

Sie müssen lediglich Docker und einen Texteditor auf Ihrem System installiert haben.

Projektstruktur

Hier ist die endgültige Projektstruktur:

$ tree -a python_data_science_container

$ python_data_science_container
├── Dockerfile
├── conf
│   └── .jupyter
│       └── jupyter_notebook_config.py
└── run_jupyter.sh

2 directories, 3 files

Dockerfile

Sie müssen lediglich einen Projektordner und einen Dateinamen Dockerfile erstellen innen:

$ mkdir python_data_science_container

$ cd python_data_science_container

$ vim Dockerfile

Fügen Sie danach den folgenden Inhalt in das Dockerfile ein :

FROM ubuntu:20.04
MAINTAINER "Andrei Maksimov"

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y \
	libopencv-dev \
        python3-pip \
	python3-opencv && \
    rm -rf /var/lib/apt/lists/*

RUN pip3 install tensorflow && \
    pip3 install numpy \
        pandas \
        sklearn \
        matplotlib \
        seaborn \
        jupyter \
        pyyaml \
        h5py && \
    pip3 install keras --no-deps && \
    pip3 install opencv-python && \
    pip3 install imutils

RUN ["mkdir", "notebooks"]
COPY conf/.jupyter /root/.jupyter
COPY run_jupyter.sh /

# Jupyter and Tensorboard ports
EXPOSE 8888 6006

# Store notebooks in this mounted directory
VOLUME /notebooks

CMD ["/run_jupyter.sh"]

Auf GitHub finden Sie immer aktuelle Beispiele für mein eigenes Dockerfile, das ich verwende, um meine persönliche Data Science-Containerumgebung zu erstellen (es ist auch kostenlos auf Docker Hub verfügbar).

Jupyter-Konfiguration

Sobald wir unseren Container und seine Komponenten deklariert haben, ist es an der Zeit, eine Konfiguration für Jupyter vorzubereiten. Erstellen Sie eine Datei jupyter_notebook_config.py mit folgendem Inhalt:

# get the config object
c = get_config()
# in-line figure when using Matplotlib
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.allow_remote_access = True
# do not open a browser window by default when using notebooks
c.NotebookApp.open_browser = False
# No token. Always use jupyter over ssh tunnel
c.NotebookApp.token = ''
c.NotebookApp.notebook_dir = '/notebooks'
# Allow to run Jupyter from root user inside Docker container
c.NotebookApp.allow_root = True

Wie Sie aus Dockerfile erraten können , wir fügen es in /root/.jupyter/ ein Ordner während des Container-Erstellungsprozesses.

Startskript erstellen

Als letztes müssen wir ein Skript run_jupyter.sh erstellen , die den Jupiter-Server während des Startvorgangs in unserem Container startet. Erstellen Sie eine mit folgendem Inhalt:

#!/usr/bin/env bash

jupyter notebook "$@"

Und machen Sie diese Datei ausführbar:

$ chmod +x run_jupyter.sh

Diese Datei wird standardmäßig jedes Mal in Ihrem Container gestartet, wenn Sie den neuen starten.

Container-Image erstellen

Die letzte Phase – Containererstellung. Führen Sie einfach den folgenden Befehl aus, um Ihren Docker-Container aus dem Projektverzeichnis zu erstellen:

$ docker build -f Dockerfile -t python_data_science_container .

Docker installiert während des Build-Prozesses alle erforderlichen Bibliotheken und Frameworks in Ihrem Container-Image und stellt es zur Verwendung zur Verfügung.

Laufender Container

Jetzt haben Sie einen funktionierenden Container und es ist Zeit, ihn zu starten. Erstellen Sie einen Ordner innerhalb des Ordners Ihres Projekts, in dem wir alle unsere Jupyter Notebooks mit dem Quellcode unserer Projekte speichern:

$ mkdir notebooks

Und starten Sie den Container mit dem folgenden Befehl:

$ docker run -it -p 8888:8888 \
    -p 6006:6006 \
    -d \
    -v $(pwd)/notebooks:/notebooks \
    python_data_science_container

Es startet den Container und stellt Jupyter auf Port 8888 und Tensorflow Dashboard auf Port 6006 auf Ihrem lokalen Computer oder Ihrem Server bereit, je nachdem, wo Sie diesen Befehl ausführen.

Bitte beachten Sie, dass dieser Container nur für lokale Entwicklungszwecke erstellt wurde. ich Authentifizierung auf Jupyter in diesem Container entfernt, sodass sich jeder mit Port 8888 oder 6006 verbinden und den Python-Code der Ursache ausführen kann

Wenn Sie nur nach einer funktionierenden Lösung suchen

Wenn Sie keinen eigenen Container erstellen und pflegen möchten und die oben genannten Komponenten für Sie ausreichen, können Sie gerne meinen persönlichen Container verwenden, den ich normalerweise aktualisiere:

$ docker run -it -p 8888:8888 \
    -p 6006:6006 \
    -d \
    -v $(pwd)/notebooks:/notebooks \
    amaksimov/python_data_science

Ich hoffe, dass dieser Artikel für Sie hilfreich sein wird. Wenn Ihnen der Artikel gefällt, posten Sie ihn bitte über die gewünschten sozialen Medien erneut. Bis bald!


Docker
  1. So installieren und konfigurieren Sie Docker Container unter Rocky Linux 8

  2. Wie führe ich ein Programm in einem Docker-Container aus?

  3. So führen Sie MySQL in einem Docker-Container aus

  4. Anwendungen in Docker-Containern installieren, ausführen und löschen – Teil 2

  5. So installieren Sie Docker und führen Docker-Container in Ubuntu aus

So installieren und verwenden Sie Docker unter Ubuntu 22.04

So führen Sie eine .NET-App in Docker aus

So führen Sie PHPMyAdmin in einem Docker-Container aus

So bereinigen und löschen Sie Docker-Images

So führen Sie Grafana in einem Docker-Container aus

So führen Sie Docker-Container aus