मेरे पास एक छोटा वेब सर्वर है जो वाक्य के संदर्भ में इनपुट प्राप्त करता है और टेन्सफोर्लो सर्विसिंग का उपयोग करके मॉडल पूर्वानुमान को वापस करने की आवश्यकता होती है। यह हमारे एकल जीपीयू का उपयोग करके सभी ठीक और अच्छी तरह से काम कर रहा है, लेकिन अब मैं बैचिंग को सक्षम करना चाहता हूं जैसे कि टेंस्फोर्लो सर्विंग जीपीयू पर एक बैच में एक साथ प्रसंस्करण करने से पहले इनकमिंग वाक्यों को समूहित करने के लिए थोड़ा इंतजार कर रहा है।टेन्सफोर्लो सर्विसिंग में बैचिंग डिबगिंग (कोई प्रभाव नहीं देखा गया)
मैं predesigned server framework का उपयोग predesigned batching framework के साथ टेन्सफोर्लो सर्विसिंग की प्रारंभिक रिलीज का उपयोग कर रहा हूं। मैं --batching
ध्वज का उपयोग करके बैचिंग सक्षम कर रहा हूं और batch_timeout_micros = 10000
और max_batch_size = 1000
सेट किया है। लॉगिंग पुष्टि करता है कि बैचिंग सक्षम है और GPU का उपयोग किया जा रहा है।
हालांकि, सेवा सर्वर पर अनुरोध भेजते समय बैचिंग का न्यूनतम प्रभाव होता है। 5 अनुरोध भेजने के साथ समय के उपयोग के संदर्भ में लगभग 50 अनुरोध भेजकर लगभग रैखिक रूप से स्केल। दिलचस्प बात यह है कि सर्वर के predict()
प्रत्येक अनुरोध के लिए एक बार चलाया जाता है (here देखें), जो मुझे बताता है कि बैचिंग को ठीक तरह से संभाला नहीं जा रहा है।
क्या मुझे कुछ याद आ रही है? बैचिंग के साथ क्या गलत है मैं कैसे जांचूं?
ध्यान दें कि यह How to do batching in Tensorflow Serving? से अलग है के रूप में यह सवाल केवल कैसे एक भी क्लाइंट से कई अनुरोध भेजने के लिए की जांच करता है, लेकिन Tensorflow सेवित के परदे के पीछे कई अलग-अलग अनुरोध के लिए बैचिंग सक्षम करने के लिए कैसे नहीं।