मैं अपने मॉडल को प्रशिक्षित करने की कोशिश कर रहा हूं जो छवियों को वर्गीकृत करता है। मेरे पास जो समस्या है, उनके अलग-अलग आकार हैं। मुझे अपनी छवियों / या मॉडल वास्तुकला को कैसे प्रारूपित करना चाहिए?
मैं अपने मॉडल को प्रशिक्षित करने की कोशिश कर रहा हूं जो छवियों को वर्गीकृत करता है। मेरे पास जो समस्या है, उनके अलग-अलग आकार हैं। मुझे अपनी छवियों / या मॉडल वास्तुकला को कैसे प्रारूपित करना चाहिए?
जवाबों:
आपने यह नहीं बताया कि आप किस वास्तुकला की बात कर रहे हैं। चूंकि आपने कहा था कि आप छवियों को वर्गीकृत करना चाहते हैं, इसलिए मैं इसे आंशिक रूप से पूर्णतः आंशिक रूप से पूरी तरह से जुड़ा नेटवर्क जैसे कि एलेक्सनेट, गोगेलनेट आदि मान रहा हूं। सामान्य तौर पर, आपके प्रश्न का उत्तर उस नेटवर्क प्रकार पर निर्भर करता है, जिसके साथ आप काम कर रहे हैं।
यदि, उदाहरण के लिए, आपके नेटवर्क में केवल अनुषंगी इकाइयाँ हैं - जो कहना है, जिसमें पूरी तरह से जुड़ी हुई परतें नहीं हैं - यह इनपुट छवि के आकार के लिए अपरिवर्तनीय हो सकता है। ऐसा नेटवर्क इनपुट छवियों को संसाधित कर सकता है और बदले में एक और छवि लौटा सकता है ("सभी तरह से दृढ़"); आपको यह सुनिश्चित करना होगा कि आउटपुट आपकी अपेक्षा से मेल खाता है, क्योंकि आपको किसी न किसी तरह से नुकसान का निर्धारण करना होगा।
यदि आप पूरी तरह से कनेक्टेड यूनिट्स का उपयोग कर रहे हैं, तो आप परेशानी में हैं: यहां आपके पास एक निश्चित संख्या में सीखा हुआ वेट है जिससे आपके नेटवर्क को काम करना पड़ता है, इसलिए अलग-अलग इनपुट के लिए अलग-अलग वेट की आवश्यकता होती है - और यह संभव नहीं है।
यदि वह आपकी समस्या है, तो यहां कुछ चीजें दी जा सकती हैं:
N
सही आकार की विभिन्न छवियों में विभाजित हो जाए ।पैडिंग विकल्प नेटवर्क की भविष्यवाणी के लिए एक अतिरिक्त त्रुटि स्रोत पेश कर सकता है, क्योंकि नेटवर्क उन चित्रों के पक्षपाती हो सकता है (जिनमें संभावना है) ऐसी गद्देदार सीमा होती है। यदि आपको कुछ विचारों की आवश्यकता है, तो TensorFlow दस्तावेज़ीकरण की छवियाँ अनुभाग पर एक नज़र डालें , ऐसे टुकड़े हैं resize_image_with_crop_or_pad
जो बड़े काम को दूर ले जाते हैं।
केवल स्क्वाशिंग की परवाह न करने के लिए, यहाँ प्रसिद्ध इंसेप्शन नेटवर्क की प्रीप्रोसेसिंग पाइपलाइन का एक टुकड़ा है:
# This resizing operation may distort the images because the aspect
# ratio is not respected. We select a resize method in a round robin
# fashion based on the thread number.
# Note that ResizeMethod contains 4 enumerated resizing methods.
# We select only 1 case for fast_mode bilinear.
num_resize_cases = 1 if fast_mode else 4
distorted_image = apply_with_random_selector(
distorted_image,
lambda x, method: tf.image.resize_images(x, [height, width], method=method),
num_cases=num_resize_cases)
वे इसके बारे में पूरी तरह से जानते हैं और इसे वैसे भी करते हैं।
इस बात पर निर्भर करता है कि आप कितनी दूर जाना चाहते हैं या नहीं, वास्तव में विजुअल रिकॉग्निशन के लिए डीप कॉनवोल्यूशन नेटवर्क्स में स्पेसियल पिरामिड पूलिंग नामक एक पेपर है जो बहुत ही खास तरीके से प्रोसेस करके मनमाने आकार के इनपुट्स को हैंडल करता है।
एक स्थानिक पिरामिड पूलिंग परत बनाने की कोशिश करें। फिर इसे अपनी अंतिम कनवल्शन लेयर के बाद रखें ताकि एफसी लेयर्स को इनपुट के रूप में लगातार आयामी वैक्टर मिलें। प्रशिक्षण के दौरान, एक एपोच के लिए एक विशेष छवि आकार का उपयोग करके संपूर्ण डेटासेट से छवियों को प्रशिक्षित करें। फिर अगले युग के लिए, एक अलग छवि आकार पर स्विच करें और प्रशिक्षण जारी रखें।