कैश सेट
बाद में पुनः प्राप्त करने के लिए कैश प्रविष्टि में एक मान संग्रहीत करता है।
इमेज के वीडियो पहचानकर्ता को नेमस्पेस के रूप में उपयोग करके, कुंजी के आधार पर एक इन-मेमोरी कैश में मान संग्रहीत करें ताकि वर्कफ़्लो चरणों के बीच डेटा साझा किया जा सके, मध्यवर्ती परिणाम कैश किए जा सकें, और उसी वर्कफ़्लो निष्पादन संदर्भ में अनावश्यक गणनाओं से बचा जा सके।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक इन-मेमोरी कैश में मान संग्रहीत करता है, जिन्हें बाद में Cache Get ब्लॉक का उपयोग करके प्राप्त किया जा सकता है। यह ब्लॉक:
इमेज, कैश कुंजी, और संग्रहीत करने के लिए मान प्राप्त करता है:
कैश नेमस्पेस निर्धारित करने के लिए इनपुट इमेज लेता है
कैश प्रविष्टि की पहचान करने वाली कैश कुंजी (स्ट्रिंग) प्राप्त करता है
कैश में संग्रहीत करने के लिए एक मान (कोई भी डेटा प्रकार) प्राप्त करता है
कैश नेमस्पेस निर्धारित करता है:
इमेज के वीडियो मेटाडेटा से वीडियो पहचानकर्ता निकालता है
वीडियो पहचानकर्ता को कैश नेमस्पेस के रूप में उपयोग करता है (प्रति वीडियो/स्ट्रीम कैश प्रविष्टियों को अलग करता है)
यदि कोई वीडियो पहचानकर्ता मौजूद न हो, तो "default" नेमस्पेस पर वापस जाता है
कैश में मान संग्रहीत करता है:
निर्धारित नेमस्पेस के लिए इन-मेमोरी कैश डिक्शनरी तक पहुँचता है
निर्दिष्ट कुंजी का उपयोग करके कैश में मान संग्रहीत करता है
उसी कुंजी वाले किसी भी मौजूदा मान को अधिलेखित करता है (कैश कुंजियाँ नेमस्पेस के भीतर अद्वितीय होती हैं)
संग्रहीत मान लौटाता है:
संग्रहीत मान को पास-थ्रू के रूप में आउटपुट करता है (वही मान जो संग्रहीत किया गया था)
आउटपुट का उपयोग बाद के वर्कफ़्लो चरणों द्वारा किया जा सकता है
कैश को वीडियो पहचानकर्ता के अनुसार नेमस्पेस किया गया है, जिसका अर्थ है कि अलग-अलग वीडियो या स्ट्रीम के लिए अलग कैश संग्रहण होता है। इससे कई वीडियो संसाधित करने वाले वर्कफ़्लो प्रत्येक वीडियो के लिए अलग-अलग कैश बनाए रख सकते हैं। कैश मेमोरी में संग्रहीत होता है और वर्कफ़्लो निष्पादन पूरा होने पर या ब्लॉक हटाए जाने पर साफ़ हो जाता है। Cache Set का उपयोग Cache Get के साथ मिलाकर करना चाहिए - मान Cache Set के साथ संग्रहीत किए जाते हैं और समान कुंजी तथा नेमस्पेस (उसी वीडियो पहचानकर्ता द्वारा निर्धारित) का उपयोग करके Cache Get से प्राप्त किए जाते हैं।
सामान्य उपयोग के मामले
चरणों के बीच साझा स्थिति: एक वर्कफ़्लो चरण में मध्यवर्ती परिणाम संग्रहीत करें ताकि उन्हें दूसरे चरण में पुनः प्राप्त किया जा सके (उदाहरण के लिए, बाद के विश्लेषण के लिए डिटेक्शन परिणाम संग्रहीत करें, फ़िल्टरिंग के लिए वर्गीकरण पूर्वानुमान कैश करें, बाद के ब्लॉकों के लिए मेटाडेटा सहेजें), जिससे स्थिति-साझाकरण वर्कफ़्लो सक्षम होते हैं
अनावश्यक गणनाओं से बचें: महंगी गणना के परिणामों को कई वर्कफ़्लो चरणों में पुनः उपयोग के लिए कैश करें (उदाहरण के लिए, मॉडल पूर्वानुमान कैश करें, संसाधित इमेज संग्रहीत करें, रूपांतरण परिणाम सहेजें), जिससे गणना-कैशिंग वर्कफ़्लो सक्षम होते हैं
वीडियो फ़्रेम संदर्भ: फ़्रेम-विशिष्ट डेटा संग्रहीत करके वीडियो फ़्रेमों के बीच संदर्भ बनाए रखें (उदाहरण के लिए, पिछले फ़्रेम की डिटेक्शन कैश करें, फ़्रेम अनुक्रम मेटाडेटा संग्रहीत करें, ट्रैकिंग स्थिति सहेजें), जिससे फ़्रेम संदर्भ वर्कफ़्लो सक्षम होते हैं
सशर्त वर्कफ़्लो तर्क: निर्णय परिणाम या फ़्लैग संग्रहीत करें जो बाद के चरणों में वर्कफ़्लो निष्पादन को नियंत्रित करते हैं (उदाहरण के लिए, फ़िल्टरिंग निर्णय कैश करें, सत्यापन परिणाम संग्रहीत करें, वर्कफ़्लो स्थिति सहेजें), जिससे सशर्त निष्पादन वर्कफ़्लो सक्षम होते हैं
डेटा समुच्चयन: कैश में मान संग्रहीत करके वर्कफ़्लो चरणों के बीच डेटा एकत्र करें (उदाहरण के लिए, डिटेक्शन गणनाएँ संग्रहीत करें, आँकड़े कैश करें, परिणाम संग्रह सहेजें), जिससे डेटा समुच्चयन वर्कफ़्लो सक्षम होते हैं
अस्थायी संग्रहण: कैश को उन मानों के लिए अस्थायी संग्रहण के रूप में उपयोग करें जिन्हें वर्कफ़्लो ग्राफ़ के माध्यम से पास किए बिना कई वर्कफ़्लो चरणों द्वारा एक्सेस करने की आवश्यकता होती है (उदाहरण के लिए, चरणों के बीच का डेटा संग्रहीत करें, अस्थायी स्थिति बनाए रखें, गैर-रेखीय वर्कफ़्लो डेटा साझा करें), जिससे अस्थायी संग्रहण वर्कफ़्लो सक्षम होते हैं
अन्य ब्लॉकों से जोड़ना
यह ब्लॉक कैश में मान संग्रहीत करता है और संग्रहीत मान को पास-थ्रू के रूप में आगे भेजता है:
Cache Get ब्लॉक से पहले बाद में प्राप्त किए जाने वाले मानों को संग्रहीत करने के लिए (उदाहरण के लिए, पुनः प्राप्ति के लिए डिटेक्शन संग्रहीत करें, बाद में उपयोग के लिए पूर्वानुमान कैश करें, पहुँच के लिए मेटाडेटा सहेजें), जिससे कैश संग्रहण वर्कफ़्लो सक्षम होते हैं
मॉडल या प्रसंस्करण ब्लॉकों के बाद उनके आउटपुट को बाद में उपयोग के लिए कैश करने के लिए (उदाहरण के लिए, मॉडल पूर्वानुमान कैश करें, संसाधित परिणाम संग्रहीत करें, गणना आउटपुट सहेजें), जिससे परिणाम कैशिंग वर्कफ़्लो सक्षम होते हैं
वर्कफ़्लो शाखाओं में साझा मान संग्रहीत करने के लिए, जो समानांतर या सशर्त निष्पादन पथों से एक्सेस किए जा सकते हैं (उदाहरण के लिए, साझा स्थिति संग्रहीत करें, सामान्य परिणाम कैश करें, शाखा डेटा सहेजें), जिससे शाखा समन्वय वर्कफ़्लो सक्षम होते हैं
कैश किए गए डेटा की आवश्यकता वाले ब्लॉकों से पहले ऐसे मानों को संग्रहीत करने के लिए जो बाद के ब्लॉकों द्वारा उपयोग किए जाएंगे (उदाहरण के लिए, बाद के प्रसंस्करण के लिए इनपुट संग्रहीत करें, फ़िल्टरिंग के लिए डेटा कैश करें, विश्लेषण के लिए मान सहेजें), जिससे कैश किए गए डेटा वर्कफ़्लो सक्षम होते हैं
सशर्त तर्क वाले वर्कफ़्लो में बाद के उपयोग के लिए फ़्लैग या निर्णय संग्रहीत करने के लिए (उदाहरण के लिए, सत्यापन परिणाम संग्रहीत करें, निर्णय फ़्लैग कैश करें, सशर्त स्थिति सहेजें), जिससे सशर्त तर्क वर्कफ़्लो सक्षम होते हैं
वीडियो प्रसंस्करण वर्कफ़्लो के साथ फ़्रेम-विशिष्ट या वीडियो-विशिष्ट कैश नेमस्पेस बनाए रखने के लिए (उदाहरण के लिए, फ़्रेम संदर्भ संग्रहीत करें, वीडियो-विशिष्ट डेटा कैश करें, स्ट्रीम-विशिष्ट मान सहेजें), जिससे वीडियो संदर्भ वर्कफ़्लो सक्षम होते हैं
आवश्यकताएँ
इस ब्लॉक के लिए एक इनपुट इमेज (जिसका उपयोग वीडियो पहचानकर्ता के माध्यम से कैश नेमस्पेस निर्धारित करने के लिए किया जाता है), एक कैश कुंजी (स्ट्रिंग) जो कैश प्रविष्टि की पहचान करती है, और संग्रहीत करने के लिए एक मान (कोई भी डेटा प्रकार) आवश्यक है। यह ब्लॉक केवल LOCAL निष्पादन मोड में काम करता है - यदि इसे अन्य निष्पादन मोड में उपयोग किया जाए, तो यह NotImplementedError उत्पन्न करेगा। कैश में संग्रहीत मानों को बाद में समान कुंजी और नेमस्पेस (उसी वीडियो पहचानकर्ता) के साथ Cache Get ब्लॉक का उपयोग करके प्राप्त किया जा सकता है। कैश मेमोरी में संग्रहीत होता है और वर्कफ़्लो निष्पादन पूरा होने पर स्वचालित रूप से साफ़ हो जाता है। कैश वीडियो पहचानकर्ता के अनुसार नेमस्पेस किया गया है, इसलिए अलग-अलग वीडियो के लिए अलग कैश संग्रहण होता है। यदि कैश में कोई कुंजी पहले से मौजूद है, तो उसी कुंजी के साथ नया मान संग्रहीत करने पर पिछला मान अधिलेखित हो जाएगा। संग्रहीत मान किसी भी डेटा प्रकार का हो सकता है (स्ट्रिंग, संख्या, सूची, डिटेक्शन, इमेज, आदि)।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फील्ड: roboflow_core/cache_set@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक अद्वितीय पहचानकर्ता दर्ज करें..
❌
कुंजी
str
कैश कुंजी (स्ट्रिंग) जो उस कैश प्रविष्टि की पहचान करती है जहाँ मान संग्रहीत किया जाएगा। मान को Cache Get ब्लॉक के साथ पुनः प्राप्त करते समय उसी कुंजी का उपयोग उसी मान के साथ किया जाना चाहिए। कुंजियाँ case-sensitive होती हैं और उनका सटीक मिलान होना चाहिए। यदि कैश में कोई कुंजी पहले से मौजूद है, तो नया मान संग्रहीत करने पर पिछला मान अधिलेखित हो जाएगा। विभिन्न कैश किए गए मानों की पहचान के लिए वर्णनात्मक कुंजियों का उपयोग करें (उदाहरण के लिए, 'detections', 'classification_result', 'frame_metadata')..
✅
यह संदर्भ कॉलम यह दर्शाता है कि प्रॉपर्टी को गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है, जो वर्कफ़्लो रनटाइम में उपलब्ध हैं। अधिक जानकारी के लिए देखें Bindings ।
रनटाइम संगतता
हार्ड - निष्पादन दूरस्थ : Cache ब्लॉक केवल LOCAL वर्कफ़्लो चरण निष्पादन का समर्थन करते हैं; दूरस्थ चरण निष्पादन NotImplementedError उत्पन्न करता है।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। जाँचें कि कौन-से बाइंडिंग प्रकार कैश सेट करें संस्करण में v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
image(image): कैश नेमस्पेस निर्धारित करने के लिए उपयोग की जाने वाली इनपुट इमेज। ब्लॉक इमेज के वीडियो मेटाडेटा से वीडियो पहचानकर्ता निकालता है और उसे कैश नेमस्पेस के रूप में उपयोग करता है। यदि कोई वीडियो पहचानकर्ता मौजूद न हो, तो ब्लॉक नेमस्पेस के रूप में 'default' का उपयोग करता है। नेमस्पेस कैश प्रविष्टियों को अलग करता है, इसलिए अलग-अलग वीडियो या स्ट्रीम के लिए अलग कैश संग्रहण होता है। समान कैश नेमस्पेस तक पहुँचने के लिए Cache Set और Cache Get दोनों ब्लॉकों में समान इमेज (समान वीडियो पहचानकर्ता के साथ) का उपयोग करें..कुंजी(स्ट्रिंग): कैश कुंजी (स्ट्रिंग) जो उस कैश प्रविष्टि की पहचान करती है जहाँ मान संग्रहीत किया जाएगा। मान को Cache Get ब्लॉक के साथ पुनः प्राप्त करते समय उसी कुंजी का उपयोग उसी मान के साथ किया जाना चाहिए। कुंजियाँ case-sensitive होती हैं और उनका सटीक मिलान होना चाहिए। यदि कैश में कोई कुंजी पहले से मौजूद है, तो नया मान संग्रहीत करने पर पिछला मान अधिलेखित हो जाएगा। विभिन्न कैश किए गए मानों की पहचान के लिए वर्णनात्मक कुंजियों का उपयोग करें (उदाहरण के लिए, 'detections', 'classification_result', 'frame_metadata')..value(Union[*,list_of_values]): कैश में संग्रहीत करने के लिए मान। यह किसी भी डेटा प्रकार का हो सकता है, जिसमें स्ट्रिंग, संख्या, सूची, डिटेक्शन, इमेज, वर्गीकरण, या कोई अन्य वर्कफ़्लो डेटा प्रकार शामिल है। मान मेमोरी में संग्रहीत होता है और बाद में समान कुंजी और नेमस्पेस के साथ Cache Get ब्लॉक का उपयोग करके प्राप्त किया जा सकता है। मान को ब्लॉक के आउटपुट के रूप में भी पास किया जाता है, जिससे इसे बाद के वर्कफ़्लो चरणों द्वारा उपयोग किया जा सकता है..
आउटपुट
आउटपुट(*): किसी भी तत्व के समतुल्य।
अंतिम अपडेट
क्या यह उपयोगी था?