با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

در حال توسعه با Docker

کشیدن تصویر توسعه

برای یک محیط توسعه که در آن می توانید سرویس TensorFlow بسازید، می توانید امتحان کنید:

docker pull tensorflow/serving:latest-devel

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

docker pull tensorflow/serving:latest-devel-gpu

کارگر بارانداز توپی مشاهده tensorflow / خدمت مخزن برای نسخه های دیگر از تصاویر شما می توانید بکشید.

نمونه توسعه

پس از کشیدن یکی از تصاویر Docker توسعه، می توانید آن را در حین باز کردن پورت gRPC (8500) اجرا کنید:

docker run -it -p 8500:8500 --gpus all tensorflow/serving:latest-devel

تست محیط توسعه

برای تست یک مدل، از داخل ظرف امتحان کنید:

# train the mnist model
python tensorflow_serving/example/mnist_saved_model.py /tmp/mnist_model
# serve the model
tensorflow_model_server --port=8500 --model_name=mnist --model_base_path=/tmp/mnist_model/ &
# test the client
python tensorflow_serving/example/mnist_client.py --num_tests=1000 --server=localhost:8500

Dockerfiles

ما در حال حاضر Dockerfiles زیر را نگهداری می کنیم:

  • Dockerfile است، که یک VM حداقل با TensorFlow خدمت نصب شده است.

  • Dockerfile.gpu است، که یک VM حداقل با TensorFlow خدمت با پشتیبانی GPU می شود با استفاده nvidia-docker .

  • Dockerfile.devel است، که یک VM حداقل با تمام وابستگی مورد نیاز برای ساخت TensorFlow خدمت.

  • Dockerfile.devel-gpu است، که یک VM حداقل با تمام وابستگی مورد نیاز برای ساخت TensorFlow خدمت با پشتیبانی GPU.

ساخت کانتینر از Dockerfile

اگر می خواهید تصویر Docker خود را از یک Dockerfile بسازید، می توانید این کار را با اجرای دستور ساخت Docker انجام دهید:

Dockerfile :

docker build --pull -t $USER/tensorflow-serving .

Dockerfile.gpu :

docker build --pull -t $USER/tensorflow-serving-gpu -f Dockerfile.gpu .

Dockerfile.devel :

docker build --pull -t $USER/tensorflow-serving-devel -f Dockerfile.devel .

Dockerfile.devel-gpu :

docker build --pull -t $USER/tensorflow-serving-devel-gpu -f Dockerfile.devel-gpu .

نکته: قبل از اقدام به ساخت یک تصویر، بررسی کارگر بارانداز توپی tensorflow / خدمت مخزن مطمئن شوید یک تصویر است که نیازهای شما در حال حاضر وجود ندارد.

ساختن از منابع رم زیادی مصرف می کند. اگر رم یک موضوع بر روی سیستم شما، شما ممکن است استفاده از RAM با مشخص محدود --local_ram_resources=2048 در حالی که با استناد به بازل. را ببینید اسناد بازل برای اطلاعات بیشتر. می‌توانید از همین مکانیسم برای بهینه‌سازی‌هایی که با آن‌ها سرویس TensorFlow را ایجاد می‌کنید، استفاده کنید. مثلا:

docker build --pull --build-arg TF_SERVING_BUILD_OPTIONS="--copt=-mavx \
  --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0 --local_ram_resources=2048" -t \
  $USER/tensorflow-serving-devel -f Dockerfile.devel .

اجرای یک کانتینر

این فرض شما ساخته شده اند Dockerfile.devel ظرف.

برای اجرای کانتینر، پورت gRPC (8500) را باز کنید:

docker run -it -p 8500:8500 $USER/tensorflow-serving-devel

نکته: اگر شما در حال اجرا یک تصویر GPU، لازم است تا اجرا با استفاده از NVIDIA زمان اجرا --runtime=nvidia .

از اینجا، شما می توانید دستورالعمل برای دنبال آزمایش یک محیط توسعه .

ساخت یک سرویس باینری بهینه شده

هنگام اجرای TensorFlow Serving's ModelServer، ممکن است متوجه یک پیام گزارش شوید که به شکل زیر است:

I external/org_tensorflow/tensorflow/core/platform/cpu_feature_guard.cc:141]
Your CPU supports instructions that this TensorFlow binary was not compiled to
use: AVX2 FMA

این نشان می دهد که باینری ModelServer شما به طور کامل برای CPU که روی آن اجرا می شود بهینه نشده است. بسته به مدلی که ارائه می کنید، ممکن است بهینه سازی های بیشتری لازم نباشد. با این حال، ساختن یک باینری بهینه شده ساده است.

هنگامی که ساخت یک تصویر کارگر بارانداز از ارائه Dockerfile.devel یا Dockerfile.devel-gpu فایل ها، باینری ModelServer خواهد شد با پرچم ساخته شده -march=native . این باعث می‌شود که Bazel یک باینری ModelServer با تمام بهینه‌سازی‌های CPU میزبانی که تصویر Docker را روی آن می‌سازید بسازد.

برای ایجاد یک تصویر سرویس که کاملاً برای میزبان شما بهینه شده است، به سادگی:

  1. پروژه TensorFlow Serving را کلون کنید

    git clone https://github.com/tensorflow/serving
    cd serving
    
  2. با یک ModelServer بهینه شده یک تصویر بسازید

    • برای CPU:

      docker build --pull -t $USER/tensorflow-serving-devel \
        -f tensorflow_serving/tools/docker/Dockerfile.devel .
      
    • برای پردازنده گرافیکی: `

      docker build --pull -t $USER/tensorflow-serving-devel-gpu \
        -f tensorflow_serving/tools/docker/Dockerfile.devel-gpu .
      
  3. یک تصویر سرویس با تصویر توسعه به عنوان پایه بسازید

    • برای CPU:

      docker build -t $USER/tensorflow-serving \
        --build-arg TF_SERVING_BUILD_IMAGE=$USER/tensorflow-serving-devel \
        -f tensorflow_serving/tools/docker/Dockerfile .
      

      تصویر جدید کارگر بارانداز بهینه سازی شده شما در حال حاضر $USER/tensorflow-serving ، که شما می توانید استفاده از فقط شما را استاندارد tensorflow/serving:latest تصویر.

    • برای پردازنده گرافیکی:

      docker build -t $USER/tensorflow-serving-gpu \
        --build-arg TF_SERVING_BUILD_IMAGE=$USER/tensorflow-serving-devel-gpu \
        -f tensorflow_serving/tools/docker/Dockerfile.gpu .
      

      تصویر جدید کارگر بارانداز بهینه سازی شده شما در حال حاضر $USER/tensorflow-serving-gpu ، که شما می توانید استفاده از فقط شما را استاندارد tensorflow/serving:latest-gpu تصویر.