Com es construeix Python Data Science Container mitjançant Docker

Bloc

Com es construeix Python Data Science Container mitjançant Docker

Com es construeix Python Data Science Container mitjançant Docker

La intel·ligència artificial (IA) i l’aprenentatge automàtic (ML) estan literalment en flames aquests dies. Potenciar un ampli espectre de casos d’ús que van des de cotxes autònoms fins al descobriment de drogues i fins que Déu sap què. La IA i la ML tenen per davant un futur brillant i pròsper.

D’altra banda, Docker va revolucionar el món de la informàtica mitjançant la introducció d’efímers contenidors lleugers. Els contenidors contenen bàsicament tot el programari necessari per executar-se dins d’una imatge (un munt de capes de només lectura) amb una capa COW (Copy On Write) per persistir les dades.

Paquets Python Data Science

El nostre contenidor de ciències de dades de Python fa ús dels següents paquets de Python super cool:

  1. NumPy : NumPy o Numeric Python admet matrius i matrius grans i multidimensionals. Proporciona funcions precompilades ràpides per a rutines matemàtiques i numèriques. A més, NumPy optimitza la programació de Python amb potents estructures de dades per a un càlcul eficient de matrius i matrius multidimensionals.

  2. SciPy : SciPy proporciona funcions útils per a la regressió, minimització, transformació de Fourier i moltes més. Basat en NumPy, SciPy amplia les seves capacitats. L’estructura principal de dades de SciPy torna a ser una matriu multidimensional, implementada per Numpy. El paquet conté eines que ajuden a resoldre àlgebra lineal, teoria de probabilitats, càlcul integral i moltes més tasques.

  3. pandes : Els pandes ofereixen eines versàtils i potents per manipular estructures de dades i realitzar anàlisis extenses de dades. Funciona bé amb dades del món real incompletes, no estructurades i no ordenades, i inclou eines per configurar, agregar, analitzar i visualitzar conjunts de dades.

  4. SciKit-Learn : Scikit-learn és un mòdul Python que integra una àmplia gamma d’algoritmes d’aprenentatge automàtic d’última generació per a problemes supervisats i no supervisats a escala mitjana. És una de les biblioteques d’aprenentatge automàtic més conegudes per a Python. El paquet Scikit-learn se centra a apropar l’aprenentatge automàtic a no especialistes que utilitzen un llenguatge d’ús general d’alt nivell. L’èmfasi principal és la facilitat d’ús, el rendiment, la documentació i la coherència de l’API. Amb dependències mínimes i fàcil distribució sota la llicència BSD simplificada, SciKit-Learn s’utilitza àmpliament en entorns acadèmics i comercials. Scikit-learn exposa una interfície concisa i coherent als algoritmes d’aprenentatge automàtic comuns, cosa que facilita la incorporació de ML als sistemes de producció.

  5. Matplotlib : Matplotlib és una biblioteca de dibuix de Python 2D, capaç de produir xifres de qualitat de publicacions en una àmplia varietat de formats de còpia impresa i entorns interactius entre plataformes. Matplotlib es pot utilitzar en scripts Python, el shell de Python i IPython, el bloc de notes Jupyter, servidors d'aplicacions web i quatre jocs d'eines d'interfície gràfica.

  6. NLTK : NLTK és una plataforma líder en la creació de programes Python per treballar amb dades de llenguatge humà. Proporciona interfícies fàcils d’utilitzar a més de 50 corpus i recursos lèxics com WordNet, juntament amb un conjunt de biblioteques de processament de text per a la classificació, la tokenització, la derivació, l’etiquetatge, l’anàlisi i el raonament semàntic.

Construint el contenidor de ciències de dades

Python s'està convertint ràpidament en el llenguatge bàsic per als científics de dades i, per aquest motiu, utilitzarem Python com a llenguatge preferit per construir el nostre contenidor de ciències de dades.

La imatge de Linux Alpine Base

Alpine Linux és una petita distribució de Linux dissenyada per a usuaris avançats que aprecien la seguretat, la simplicitat i l'eficiència de recursos.

Tal com afirma Alpí :

Petit. Senzill. Segur. Alpine Linux és una distribució de Linux lleugera i orientada a la seguretat basada en musl libc i busybox.

La imatge Alpine és sorprenentment petita, amb una mida no superior a 8 MB per als contenidors. Amb paquets mínims instal·lats per reduir la superfície d’atac al contenidor subjacent. Això converteix Alpine en una imatge d’elecció per al nostre contenidor de ciències de dades.

compte de l'aplicació d'efectiu, correu electrònic de pesca bloquejat

Baixar i executar un contenidor Alpine Linux és tan senzill com:

$ docker container run --rm alpine:latest cat /etc/os-release

Al nostre Dockerfile podem utilitzar simplement la imatge base Alpine com:

FROM alpine:latest

Talk és barat construïm el fitxer Docker

Ara anem treballant el nostre fitxer Dockerfile.

La directiva FROM s’utilitza per establir alpine: latest com a imatge base. Mitjançant la directiva WORKDIR establim el / var / www com a directori de treball del nostre contenidor. Els PAQUETS ENV inclouen els paquets de programari necessaris per al nostre contenidor com git, blas i libgfortran. Els paquets Python per al nostre contenidor de ciència de dades es defineixen als PAQUETS ENV.

Hem combinat totes les ordres sota una única directiva Dockerfile RUN per reduir el nombre de capes que al seu torn ajuda a reduir la mida de la imatge resultant.

Creació i etiquetatge de la imatge

Ara que tenim el fitxer Docker definit, aneu a la carpeta amb el fitxer Docker mitjançant el terminal i creeu la imatge amb l'ordre següent:

$ docker build -t faizanbashir/python-datascience:2.7 -f Dockerfile .

El senyalador -t s’utilitza per anomenar una etiqueta en format ‘nom: etiqueta’. L'etiqueta -f s'utilitza per definir el nom del fitxer Dockerfile (per defecte és 'PATH / Dockerfile').

Funcionament del contenidor

Hem creat i etiquetat correctament la imatge de la base, ara podem executar el contenidor mitjançant l'ordre següent:

$ docker container run --rm -it faizanbashir/python-datascience:2.7 python

Voila, ens acull la visió d’un intèrpret d’ordres de pitó preparat per realitzar tot tipus de coses interessants sobre ciència de dades.

Python 2.7.15 (default, Aug 16 2018, 14:17:09) [GCC 6.4.0] on linux2 Type 'help', 'copyright', 'credits' or 'license' for more information. >>>

El nostre contenidor ve amb Python 2.7, però no us sentiu trist si voleu treballar amb Python 3.6. Vet aquí el fitxer Docker per a Python 3.6:

Creeu i etiqueteu la imatge de la manera següent:

comunicació contenidor docker entre si
$ docker build -t faizanbashir/python-datascience:3.6 -f Dockerfile .

Executeu el contenidor així:

$ docker container run --rm -it faizanbashir/python-datascience:3.6 python

Amb això, teniu un contenidor a punt per utilitzar per fer tot tipus de coses interessants en ciència de dades.

Servint Puddin ’

Xifres, teniu temps i recursos per configurar tot això. En cas que no ho feu, podeu extreure les imatges existents que jo ja he construït i enviar al registre de Docker Docker Hub utilitzant:

# For Python 2.7 pull $ docker pull faizanbashir/python-datascience:2.7# For Python 3.6 pull $ docker pull faizanbashir/python-datascience:3.6

Després de treure les imatges, podeu utilitzar-la o ampliar-la al fitxer Dockerfile o utilitzar-la com a imatge al fitxer Docker-compose o stack.

Conseqüències

El món de la intel·ligència artificial, la ML es fa força emocionant en aquests dies i continuarà sent encara més emocionant. Els grans jugadors inverteixen molt en aquests dominis. Amb el temps comenceu a aprofitar el poder de les dades, qui sap que pot conduir a quelcom meravellós.

Podeu consultar el codi aquí .

#python #docker # data-science