Google is committed to advancing racial equity for Black communities. See how.

داکر

Docker از کانتینرها برای ایجاد محیط های مجازی استفاده می کند که نصب TensorFlow را از بقیه سیستم جدا می کند. برنامه های TensorFlow در این محیط مجازی اجرا می شوند که می توانند منابع را با دستگاه میزبان خود به اشتراک بگذارند (دسترسی به دایرکتوری ها ، استفاده از GPU ، اتصال به اینترنت و غیره). تصاویر TensorFlow Docker برای هر نسخه آزمایش می شوند.

Docker ساده ترین راه برای فعال کردن پشتیبانی GPU TensorFlow در لینوکس است زیرا فقط درایور GPU NVIDIA® در دستگاه میزبان مورد نیاز است ( NVIDIA® CUDA® Toolkit نیازی به نصب ندارد).

الزامات TensorFlow Docker

  1. Docker را روی دستگاه میزبان محلی خود نصب کنید.
  2. برای پشتیبانی از GPU در Linux ، پشتیبانی NVIDIA Docker را نصب کنید .
    • نسخه docker خود را با docker -v یادداشت کنید. نسخه های زودتر از 19.03 به nvidia-docker2 و پرچم --runtime=nvidia نیاز دارند. در نسخه های شامل و بعد از 19.03 ، شما از nvidia-container-toolkit و پرچم --gpus all استفاده خواهید کرد. هر دو گزینه در صفحه پیوند داده شده در بالا ثبت شده است.

تصویر TensorFlow Docker را بارگیری کنید

تصاویر رسمی TensorFlow Docker در مخزن tensorflow / tensorflow Docker Hub قرار دارند. انتشار تصاویر با استفاده از قالب زیر برچسب گذاری می شوند :

برچسب زدن شرح
latest آخرین انتشار تصویر باینری پردازنده TensorFlow. پیش فرض
nightly ساختهای شبانه تصویر TensorFlow. (ناپایدار.)
version نسخه باینری TensorFlow را مشخص کنید ، به عنوان مثال: 2.1.0
devel ایجاد شبانه یک محیط توسعه master TensorFlow. شامل کد منبع TensorFlow.
custom-op تصویر آزمایشی ویژه برای توسعه عملکردهای سفارشی TF. اطلاعات بیشتر در اینجا

هر برچسب پایه دارای انواع مختلفی است که عملکرد را اضافه یا تغییر می دهد:

گزینه ها را برچسب بزنید شرح
tag -gpu انتشار برچسب مشخص شده با پشتیبانی از GPU. ( زیر را ببینید )
tag -jupyter انتشار برچسب مشخص شده با Jupyter (شامل نوت بوک های آموزشی TensorFlow)

می توانید همزمان از چندین نوع مختلف استفاده کنید. به عنوان مثال ، موارد زیر بارگیری TensorFlow تصاویر را در دستگاه شما آزاد می کند:

docker pull tensorflow/tensorflow                     # latest stable release
docker pull tensorflow/tensorflow:devel-gpu           # nightly dev release w/ GPU support
docker pull tensorflow/tensorflow:latest-gpu-jupyter  # latest release w/ GPU support and Jupyter

یک ظرف TensorFlow Docker را شروع کنید

برای شروع یک ظرف با پیکربندی TensorFlow ، از فرم فرمان زیر استفاده کنید:

docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]

برای جزئیات ، به مرجع اجرای docker مراجعه کنید .

نمونه هایی با استفاده از تصاویر فقط CPU

بیایید نصب TensorFlow را با استفاده از latest تصویر برچسب زده شده تأیید کنیم. بارگذار اولین بار اجرا شدن تصویر TensorFlow جدید است:

docker run -it --rm tensorflow/tensorflow \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

بیایید چند دستور دیگر از TensorFlow Docker را نشان دهیم. یک جلسه bash shell را در یک ظرف با پیکربندی TensorFlow شروع کنید:

docker run -it tensorflow/tensorflow bash

درون ظرف ، می توانید جلسه python را شروع کرده و TensorFlow را وارد کنید.

برای اجرای یک برنامه TensorFlow که بر روی دستگاه میزبان در یک کانتینر ایجاد شده است ، پوشه میزبان را سوار کرده و فهرست کاری ظرف را تغییر دهید ( -v hostDir:containerDir -w workDir ):

docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py

وقتی پرونده های ایجاد شده در یک کانتینر در معرض میزبان قرار می گیرند ، مشکلات مربوط به مجوز ممکن است ایجاد شود. معمولاً بهتر است پرونده ها را در سیستم میزبان ویرایش کنید.

با استفاده از ساخت شبانه TensorFlow ، یک سرور Jupyter Notebook راه اندازی کنید:

docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter

دستورالعمل ها را دنبال کنید و URL را در مرورگر وب میزبان خود باز کنید: http://127.0.0.1:8888/?token=...

پشتیبانی از پردازنده گرافیکی

Docker ساده ترین راه برای اجرای TensorFlow در GPU است زیرا دستگاه میزبان فقط به درایور NVIDIA® نیاز دارد ( جعبه ابزار NVIDIA® CUDA® لازم نیست).

Nvidia Container Toolkit را نصب کنید تا پشتیبانی GPU NVIDIA N را به Docker اضافه کنید. nvidia-container-runtime فقط برای لینوکس در دسترس است. برای جزئیات بیشتر به س nvidia-container-runtime متداول پشتیبانی پلتفرم nvidia-container-runtime مراجعه کنید.

بررسی کنید GPU در دسترس است:

lspci | grep -i nvidia

تأیید نصب nvidia-docker :

docker run --gpus all --rm nvidia/cuda nvidia-smi

نمونه هایی با استفاده از تصاویر دارای GPU

یک تصویر TensorFlow با قابلیت GPU را بارگیری و اجرا کنید (ممکن است چند دقیقه طول بکشد):

docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

تنظیم تصویر با پردازنده گرافیکی ممکن است مدتی طول بکشد. اگر به طور مکرر از اسکریپت های مبتنی بر GPU استفاده می کنید ، می توانید از docker exec برای استفاده مجدد از ظرف استفاده کنید.

برای شروع یک جلسه پوسته bash در ظرف از آخرین تصویر GPU TensorFlow استفاده کنید:

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash