Автор оригинала: Faizan Bashir.
TL; доктор
Искусственный интеллект (AI) и машинное обучение (мл) буквально в огне в наши дни. Включение широкого спектра использования случаев использования, начиная от самонаводных автомобилей к открытию лекарств, и Бога знает, что. AI и ML имеют яркое и процветающее будущее впереди них.
С другой стороны, Докер революционизировал вычислительный мир благодаря введению эфемерных легких контейнеров. Контейнеры в основном упаковывают все программное обеспечение, необходимое для запуска внутри изображения (куча слоев только для чтения) с слоем коровы (копия в записи), чтобы сохранить данные.
Достаточно разговоров, давайте начнем с создания контейнера для науки Python Data.
Пакеты науки Python Data
Наш научный контейнер Python Data использует следующие супер прохладные пакеты Python:
- Numpy : Numpy или Numeric Python поддерживает большие многомерные массивы и матрицы. Он обеспечивает быструю предложенные функции для математических и численных процедур. Кроме того, Numpy оптимизирует программирование Python с мощными структурами данных для эффективных вычислений многомерных массивов и матриц.
- Scipy : Scipy предоставляет полезные функции для регрессии, минимизации, преобразования Фурье и многое другое. На основании Numpy Scipy расширяет свои возможности. Основная структура данных Scipy снова является многомерным массивом, реализованным NUMPY. Пакет содержит инструменты, которые помогают с решающей линейной алгеброй, теорией вероятности, интеграл исчисления и многие другие задачи.
- Пандас : Pandas предлагают универсальные и мощные инструменты для манипулирования структурами данных и выполняя обширный анализ данных. Он хорошо работает с неполными, неструктурированными и неупорядоченными реальными данными – и поставляется с инструментами для формирования, агрегации, анализа и визуализации наборов данных.
- Scikit – Учите : Scikit – Suart – это модуль Python, интегрирующий широкий спектр современных алгоритмов обучения машины для средних маштабных и неподрененных проблем. Это один из самых известных библиотек машин-обучения для Python. Пакет Scikit-Sulect сосредотачивается на приведении машинного обучения не специалистам с использованием языка высокого уровня общего назначения. Основным акцентом является простота использования, производительности, документации и последовательности API. С минимальными зависимостями и простым распределением при упрощенной лицензии BSD Scikit-Switch широко используется в академических и коммерческих настройках. Scikit-Sulect обнажает краткий и последовательный интерфейс для общих алгоритмов обучения машины, что делает его простым, чтобы принести ML в производственные системы.
- Матплотлиб : MATPLOTLIB – это библиотека построения Python 2D, способная производить данные о качестве публикации в широком спектре форматов жесткого копирования и интерактивных сред по платформам. MATPLOTLIB можно использовать в сценариях Python, Shell Python и iPython, ноутбука Jupyter, серверами веб-приложений и четырьмя графическими инструментариями пользовательского интерфейса.
- NLTK : NLTK – ведущая платформа для создания программ Python для работы с данными человека. Он обеспечивает простые в использовании интерфейсы до более 50 корпоративных и лексических ресурсов, таких как Wordnet, наряду с набором библиотек по обработке текста для классификации, токенизации, стягмирования, мечения, анализа и семантических рассуждений.
Создание контейнера для науки о данных
Python быстро становится языком для ученых для данных, и по этой причине мы собираемся использовать Python в качестве языка выбора для создания наших научных контейнеров данных.
База Alpine Linux Image
Alpine Linux – это крошечное распределение Linux, предназначенное для энергопотребления, которые ценят безопасность, простоту и эффективность ресурсов.
Как утверждается Альпийский :
Альпийское изображение удивительно крошечно с размером не более 8 МБ для контейнеров. С минимальными пакетами установлены для уменьшения поверхности атаки на базовом контейнере. Это делает альпийское изображение выбора для нашего научного контейнера данных.
Загрузка и запуском контейнера Alpine Linux так же просто, как:
$ docker container run --rm alpine:latest cat /etc/os-release
В нашем, DockerFile мы можем просто использовать альпийское базовое изображение как:
FROM alpine:latest
Разговор дешево, давайте построить Dockerfile
Теперь давайте будем работать через Dockerfile.
FROM alpine:latest LABEL MAINTAINER="Faizan Bashir" # Linking of locale.h as xlocale.h # This is done to ensure successfull install of python numpy package # see https://forum.alpinelinux.org/comment/690#comment-690 for more information. WORKDIR /var/www/ # SOFTWARE PACKAGES # * musl: standard C library # * lib6-compat: compatibility libraries for glibc # * linux-headers: commonly needed, and an unusual package name from Alpine. # * build-base: used so we include the basic development packages (gcc) # * bash: so we can access /bin/bash # * git: to ease up clones of repos # * ca-certificates: for SSL verification during Pip and easy_install # * freetype: library used to render text onto bitmaps, and provides support font-related operations # * libgfortran: contains a Fortran shared library, needed to run Fortran # * libgcc: contains shared code that would be inefficient to duplicate every time as well as auxiliary helper routines and runtime support # * libstdc++: The GNU Standard C++ Library. This package contains an additional runtime library for C++ programs built with the GNU compiler # * openblas: open source implementation of the BLAS(Basic Linear Algebra Subprograms) API with many hand-crafted optimizations for specific processor types # * tcl: scripting language # * tk: GUI toolkit for the Tcl scripting language # * libssl1.0: SSL shared libraries ENV PACKAGES="\ dumb-init \ musl \ libc6-compat \ linux-headers \ build-base \ bash \ git \ ca-certificates \ freetype \ libgfortran \ libgcc \ libstdc++ \ openblas \ tcl \ tk \ libssl1.0 \ " # PYTHON DATA SCIENCE PACKAGES # * numpy: support for large, multi-dimensional arrays and matrices # * matplotlib: plotting library for Python and its numerical mathematics extension NumPy. # * scipy: library used for scientific computing and technical computing # * scikit-learn: machine learning library integrates with NumPy and SciPy # * pandas: library providing high-performance, easy-to-use data structures and data analysis tools # * nltk: suite of libraries and programs for symbolic and statistical natural language processing for English ENV PYTHON_PACKAGES="\ numpy \ matplotlib \ scipy \ scikit-learn \ pandas \ nltk \ " RUN apk add --no-cache --virtual build-dependencies python --update py-pip \ && apk add --virtual build-runtime \ build-base python-dev openblas-dev freetype-dev pkgconfig gfortran \ && ln -s /usr/include/locale.h /usr/include/xlocale.h \ && pip install --upgrade pip \ && pip install --no-cache-dir $PYTHON_PACKAGES \ && apk del build-runtime \ && apk add --no-cache --virtual build-dependencies $PACKAGES \ && rm -rf /var/cache/apk/* CMD ["python"]
От
Директива используется для установки Alpine: последние
как базовое изображение. Используя Workdir
Директива Мы устанавливаем /var/www
как рабочий каталог для нашего контейнера. Энкие пакеты
Перечисляет пакеты программного обеспечения, необходимые для нашего контейнера, как Гит
, BLAS
и libgfortran
Отказ Пакеты Python для наших данных Научный контейнер определены в Энкие пакеты
Отказ
Мы объединили все команды под одним докерфилом Беги
Директива по снижению количества слоев, которые, в свою очередь, помогают уменьшить результирующий размер изображения.
Строительство и помечение изображения
Теперь, когда у нас есть наш определенный Dockerfile, перейдите к папке с DockerFile с помощью терминала и создаете изображение, используя следующую команду:
$ docker build -t faizanbashir/python-datascience:2.7 -f Dockerfile .
-t
Флаг используется для названия тега в формате «Имя: тег». -f
Тег используется для определения имени DockerFile (по умолчанию – «Path/Dockerfile»).
Запуск контейнера
Мы успешно построили и пометили изображение Docker, теперь мы можем запустить контейнер, используя следующую команду:
$ docker container run --rm -it faizanbashir/python-datascience:2.7 python
Вуаля, мы встречаются в поле зрения Python Shell готовы выполнять все виды прохладных данных.
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. >>>
Наш контейнер поставляется с Python 2.7, но не грустить, если хочешь работать с Python 3.6. Вот, вот докера для Python 3.6:
https://gist.github.com/faizanbashir/9443a7149cc53f81d84d0d356f871ec7#file-datascience-python3-6-dockerfile
Построить и пометить изображение, как так:
FROM alpine:latest LABEL MAINTAINER="Faizan Bashir" # Linking of locale.h as xlocale.h # This is done to ensure successfull install of python numpy package # see https://forum.alpinelinux.org/comment/690#comment-690 for more information. WORKDIR /var/www/ # SOFTWARE PACKAGES # * musl: standard C library # * lib6-compat: compatibility libraries for glibc # * linux-headers: commonly needed, and an unusual package name from Alpine. # * build-base: used so we include the basic development packages (gcc) # * bash: so we can access /bin/bash # * git: to ease up clones of repos # * ca-certificates: for SSL verification during Pip and easy_install # * freetype: library used to render text onto bitmaps, and provides support font-related operations # * libgfortran: contains a Fortran shared library, needed to run Fortran # * libgcc: contains shared code that would be inefficient to duplicate every time as well as auxiliary helper routines and runtime support # * libstdc++: The GNU Standard C++ Library. This package contains an additional runtime library for C++ programs built with the GNU compiler # * openblas: open source implementation of the BLAS(Basic Linear Algebra Subprograms) API with many hand-crafted optimizations for specific processor types # * tcl: scripting language # * tk: GUI toolkit for the Tcl scripting language # * libssl1.0: SSL shared libraries ENV PACKAGES="\ dumb-init \ musl \ libc6-compat \ linux-headers \ build-base \ bash \ git \ ca-certificates \ freetype \ libgfortran \ libgcc \ libstdc++ \ openblas \ tcl \ tk \ libssl1.0 \ " # PYTHON DATA SCIENCE PACKAGES # * numpy: support for large, multi-dimensional arrays and matrices # * matplotlib: plotting library for Python and its numerical mathematics extension NumPy. # * scipy: library used for scientific computing and technical computing # * scikit-learn: machine learning library integrates with NumPy and SciPy # * pandas: library providing high-performance, easy-to-use data structures and data analysis tools # * nltk: suite of libraries and programs for symbolic and statistical natural language processing for English ENV PYTHON_PACKAGES="\ numpy \ matplotlib \ scipy \ scikit-learn \ pandas \ nltk \ " RUN apk add --no-cache --virtual build-dependencies python3 \ && apk add --virtual build-runtime \ build-base python3-dev openblas-dev freetype-dev pkgconfig gfortran \ && ln -s /usr/include/locale.h /usr/include/xlocale.h \ && python3 -m ensurepip \ && rm -r /usr/lib/python*/ensurepip \ && pip3 install --upgrade pip setuptools \ && ln -sf /usr/bin/python3 /usr/bin/python \ && ln -sf pip3 /usr/bin/pip \ && rm -r /root/.cache \ && pip install --no-cache-dir $PYTHON_PACKAGES \ && apk del build-runtime \ && apk add --no-cache --virtual build-dependencies $PACKAGES \ && rm -rf /var/cache/apk/* CMD ["python3"]
Запустите контейнер, как так:
$ docker container run --rm -it faizanbashir/python-datascience:3.6 python
С этим у вас есть готовый к использованию контейнера для выполнения всех видов прохладных данных.
Обслуживание Пудида
Цифры, у вас есть время и ресурсы, чтобы настроить все это. Если вы этого не сделаете, вы можете потянуть существующие изображения, которые я уже построил и выдвинул в реестр Docker Докер Хаб с использованием:
# For Python 2.7 pull$ docker pull faizanbashir/python-datascience:2.7
# For Python 3.6 pull$ docker pull faizanbashir/python-datascience:3.6
После выталкивания изображений вы можете использовать изображение или проходить то же самое в файле DockerFile или использовать его в виде изображения в файле Docker-Compose или Stack.
Последствия
Мир Ай, ML становится довольно захватывающим в эти дни и будет продолжать становиться еще более захватывающим. Большие игроки сильно инвестируют в эти домены. О времени вы начинаете использовать силу данных, которые знают, что это может привести к чему-то замечательному.
Вы можете проверить код здесь.
Файзанбашир/Python-Datascience Docker Image for Python Contascience контейнер с Numpy, Scipy, Scikit-Surve, Matplotlib, NLTK, пакеты Pandas … github.com.
Я надеюсь, что эта статья помогла строить контейнеры для ваших научных проектов данных. CLAP Если он увеличил ваши знания, помогите ему достичь большего количества людей.