GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak spustit Jupiter, Keras, Tensorflow a další knihovny ML v Dockeru

Tento článek bude pokračovat v sérii článků souvisejících s Dockerem a ukáže, jak vytvořit kontejner Docker založený na Ubuntu 20.04 LTS pro strojové učení. Nainstalujeme do prostředí:Python 3, Jupyter, Keras, Tensorflow, TensorBoard, Pandas, Sklearn, Matplotlib, Seaborn, pyyaml, h5py. Připravte si své osobní prostředí ML za 3 minuty, kromě doby vytváření obrazu Docker!

Aktualizace 2020

Aktualizoval jsem kontejner na základ Ubuntu 20.04 LTS a urychlil jsem proces sestavování Dockeru. Nyní nevytváříme OpenCV ze zdroje, ale instalujeme jej z apt .

Nastavení prostředí je běžnou otázkou, když se začnete učit strojové učení (ML). V tomto článku vám ukážu, jak vytvořit svůj vlastní kontejner Docker, včetně následujících frameworků pro pohodlný začátek:

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

Toto je TOP 10 nejrozšířenějších frameworků Python pro Data Science a většinu z nich najdete v každém článku s návody na internetu. V příštím článku (Jak vytvořit kontejner Python Data Science Docker založený na Anacondě) ukážu, jak vytvořit stejný obrázek nad distribucí Anaconda.

Požadavky

Vše, co potřebujete, je mít v systému nainstalovaný Docker a textový editor.

Struktura projektu

Zde je konečná struktura projektu:

$ 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

Vše, co musíte udělat, je vytvořit složku projektu a název souboru Dockerfile uvnitř:

$ mkdir python_data_science_container

$ cd python_data_science_container

$ vim Dockerfile

Poté vložte následující obsah do Dockerfile :

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"]

Na GitHubu můžete vždy najít aktuální příklady mého vlastního souboru Dockerfile, který používám k vytvoření svého osobního prostředí kontejneru Data Science (je také k dispozici zdarma na Docker Hub).

Konfigurace Jupyter

Jakmile deklarujeme náš kontejner a jeho komponenty, je čas připravit konfiguraci pro Jupyter. Vytvořte soubor jupyter_notebook_config.py s následujícím obsahem:

# 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

Jak můžete uhodnout z Dockerfile , vložíme jej do /root/.jupyter/ složky během procesu sestavení kontejneru.

Vytváření spouštěcího skriptu

Poslední věc, kterou musíme udělat, je vytvořit skript run_jupyter.sh , která spustí server Jupiter uvnitř našeho kontejneru během procesu spouštění. Vytvořte soubor s následujícím obsahem:

#!/usr/bin/env bash

jupyter notebook "$@"

A udělejte tento soubor spustitelným:

$ chmod +x run_jupyter.sh

Tento soubor se ve výchozím nastavení spustí ve vašem kontejneru pokaždé, když spustíte nový.

Vytváření obrázku kontejneru

Poslední fáze – vytvoření kontejneru. Stačí spustit následující příkaz k vytvoření kontejneru Docker z adresáře projektu:

$ docker build -f Dockerfile -t python_data_science_container .

Docker nainstaluje všechny potřebné knihovny a rámce do obrazu kontejneru během procesu sestavování a zpřístupní jej k použití.

Spuštěný kontejner

Nyní máte funkční kontejner a je čas jej spustit. Vytvořte složku ve složce vašeho projektu, kam budeme ukládat všechny naše notebooky Jupyter se zdrojovým kódem našich projektů:

$ mkdir notebooks

A spusťte kontejner pomocí následujícího příkazu:

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

Spustí kontejner a zobrazí Jupyter na portu 8888 a Tensorflow Dashboard na portu 6006 na vašem místním počítači nebo serveru, v závislosti na tom, kde jste tento příkaz provedli.

Uvědomte si prosím, že tento kontejner byl vytvořen pouze pro účely místního rozvoje. jám odstranilo ověřování na Jupyteru v tomto kontejneru, takže se každý může připojit k portu 8888 nebo 6006 a spustit Python kód příčiny.

Pokud jen hledáte fungující řešení

Pokud si nechcete vytvářet a udržovat svůj vlastní kontejner a výše uvedené komponenty vám budou stačit, použijte prosím můj osobní kontejner, který obvykle aktualizuji:

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

Doufám, že vám tento článek bude užitečný. Pokud se vám článek líbí, zveřejněte jej znovu pomocí jakékoli sociální sítě, kterou chcete. Uvidíme se brzy!


Docker
  1. Jak exportovat a importovat kontejnery Docker

  2. Jak nainstalovat a nastavit Docker Container na Rocky Linux 8

  3. Jak spustit MySQL v kontejneru Docker

  1. Jak spustit program uvnitř kontejneru Docker?

  2. Jak spustit příkaz na spuštěném kontejneru Docker

  3. Jak instalovat, spouštět a odstraňovat aplikace uvnitř kontejnerů Docker – část 2

  1. Jak vložit SSH do běžícího kontejneru Docker a spustit příkazy

  2. Jak nasadit a spustit Redis v Dockeru

  3. Jak nainstalovat Docker a spustit kontejnery Docker v Ubuntu