संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

डॉकर के साथ विकास करना

विकास की छवि खींचना

एक विकास वातावरण के लिए जहां आप TensorFlow सर्विंग का निर्माण कर सकते हैं, आप कोशिश कर सकते हैं:

docker pull tensorflow/serving:latest-devel

एक विकास वातावरण के लिए जहां आप GPU समर्थन के साथ TensorFlow सर्विंग का निर्माण कर सकते हैं, इसका उपयोग करें:

docker pull tensorflow/serving:latest-devel-gpu

डोकर हब देखें tensorflow / सेवा करने रेपो छवियों आप खींच सकते हैं के अन्य संस्करणों के लिए।

विकास उदाहरण

विकास डॉकर छवियों में से एक को खींचने के बाद, आप इसे जीआरपीसी पोर्ट (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 को बनाए रखते हैं:

  • Dockerfile , जो TensorFlow साथ एक न्यूनतम वीएम है स्थापित सेवारत।

  • Dockerfile.gpu , जो TensorFlow GPU समर्थन के साथ सेवित के साथ एक न्यूनतम वीएम है के साथ प्रयोग की जाने वाली nvidia-docker

  • Dockerfile.devel , जो TensorFlow सेवित बनाने की जरूरत निर्भरता के सभी के साथ एक न्यूनतम वीएम है।

  • Dockerfile.devel-gpu है, जो TensorFlow GPU समर्थन के साथ सेवित बनाने की जरूरत निर्भरता के सभी के साथ एक न्यूनतम वीएम है।

Dockerfile से कंटेनर बनाना

यदि आप डॉकरफाइल से अपनी खुद की डॉकर छवि बनाना चाहते हैं, तो आप डॉकर बिल्ड कमांड चलाकर ऐसा कर सकते हैं:

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 की खपत होती है। यदि रैम आपके सिस्टम पर एक मुद्दा है, आप निर्दिष्ट करके RAM उपयोग को सीमित कर सकता --local_ram_resources=2048 Bazel लागू करते हुए। देखें Bazel डॉक्स अधिक जानकारी के लिए। आप उसी तंत्र का उपयोग उन अनुकूलन को बदलने के लिए कर सकते हैं जिनके साथ आप 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 कंटेनर।

जीआरपीसी पोर्ट (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

यह इंगित करता है कि आपका मॉडलसर्वर बाइनरी उस सीपीयू के लिए पूरी तरह से अनुकूलित नहीं है जिस पर वह चल रहा है। आप जिस मॉडल को पेश कर रहे हैं, उसके आधार पर आगे अनुकूलन की आवश्यकता नहीं हो सकती है। हालांकि, एक अनुकूलित बाइनरी बनाना सीधे आगे है।

जब प्रदान की से एक डोकर छवि निर्माण Dockerfile.devel या Dockerfile.devel-gpu फ़ाइलें, ModelServer द्विआधारी ध्वज के साथ बनाया जाएगा -march=native । यह Bazel को सभी CPU अनुकूलन के साथ एक मॉडलसर्वर बाइनरी बनाने का कारण बनेगा, जिस होस्ट को आप समर्थन पर डॉकर छवि बना रहे हैं।

एक सर्विंग इमेज बनाने के लिए जो आपके होस्ट के लिए पूरी तरह से अनुकूलित है, बस:

  1. TensorFlow सर्विंग प्रोजेक्ट का क्लोन बनाएं

    git clone https://github.com/tensorflow/serving
    cd serving
    
  2. एक अनुकूलित मॉडलसर्वर के साथ एक छवि बनाएं

    • सीपीयू के लिए:

      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. आधार के रूप में विकास छवि के साथ एक सर्विंग इमेज बनाएं

    • सीपीयू के लिए:

      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 छवि।