दीप लर्निंग का उपयोग कर सुविधाओं वर्गों (बिल्लियों, कुत्तों, कारों, विमानों, आदि) के एक मुट्ठी भर के वर्गीकरण के लिए कई बड़े डेटा सेट पर सफलतापूर्वक लागू किया गया है, जैसे सरल वर्णनकर्ता पिटाई प्रदर्शन के साथ एसआईएफटी, रंग हिस्टोग्राम, आदि पर सुविधाओं के बैगनिकालें पूर्व प्रशिक्षित (Tensorflow) सीएनएन
फिर भी, इस तरह के नेटवर्क को प्रशिक्षण देने के लिए प्रति कक्षा में बहुत सारे डेटा और प्रशिक्षण के बहुत सारे समय की आवश्यकता होती है। हालांकि, अक्सर एक व्यक्ति के पास पर्याप्त डेटा नहीं होता है या सिर्फ एक विचार करना चाहता है कि एक संकल्पक तंत्रिका नेटवर्क कितना अच्छा कर सकता है, समय पर एक डिजाइन करने और प्रशिक्षण देने और प्रशिक्षण डेटा एकत्र करने से पहले।
इस विशेष मामले में, यह संभव है कि नेटवर्क प्रकाशन कला राज्य द्वारा उपयोग किए गए कुछ बेंचमार्क डेटा सेट का उपयोग करके कॉन्फ़िगर किया गया हो और प्रशिक्षित किया जा सके और इसे केवल कुछ डेटा सेट पर लागू करने के लिए आदर्श हो जो आपके पास एक सुविधा के रूप में हो निकालने।
यह प्रत्येक छवि है, जो एक SVM की तरह एक शास्त्रीय वर्गीकरण विधि, रसद प्रतिगमन, तंत्रिका नेटवर्क, आदि
विशेष रूप से करने के लिए फ़ीड सकता है के लिए सुविधाओं का एक सेट में जो परिणाम एक प्रशिक्षित करने के लिए पर्याप्त डेटा नहीं है जब सीएनएन, मैं उम्मीद कर सकता हूं कि यह एक पाइपलाइन से बेहतर प्रदर्शन करे जहां सीएनएन को कुछ नमूनों पर प्रशिक्षित किया गया था।
मैं tensorflow ट्यूटोरियल देख रहा था, लेकिन वे हमेशा एक स्पष्ट प्रशिक्षण/परीक्षण चरण प्रतीत होता है। मुझे पूर्व-कॉन्फ़िगर किए गए सीएनएन फीचर एक्स्ट्रैक्टर के साथ एक अचार फ़ाइल (या समान) नहीं मिल सका।
मेरे प्रश्न हैं: ऐसे पूर्व-प्रशिक्षित नेटवर्क मौजूद हैं और मैं उन्हें कहां पा सकता हूं। वैकल्पिक रूप से: क्या यह दृष्टिकोण समझ में आता है? मुझे सीएनएन + वजन कहां मिल सकता है?
EDIT W.r.t. @ जॉन की टिप्पणी मैं 'DecodeJpeg:0'
और 'DecodeJpeg/contents:0'
उपयोग करने की कोशिश और आउटपुट है, जो अलग-अलग हैं जाँच (: एस)
import cv2, requests, numpy
import tensorflow.python.platform
import tensorflow as tf
response = requests.get('https://i.stack.imgur.com/LIW6C.jpg?s=328&g=1')
data = numpy.asarray(bytearray(response.content), dtype=np.uint8)
image = cv2.imdecode(data,-1)
compression_worked, jpeg_data = cv2.imencode('.jpeg', image)
if not compression_worked:
raise Exception("Failure when compressing image to jpeg format in opencv library")
jpeg_data = jpeg_data.tostring()
with open('./deep_learning_models/inception-v3/classify_image_graph_def.pb', 'rb') as graph_file:
graph_def = tf.GraphDef()
graph_def.ParseFromString(graph_file.read())
tf.import_graph_def(graph_def, name='')
with tf.Session() as sess:
softmax_tensor = sess.graph.get_tensor_by_name('pool_3:0')
arr0 = numpy.squeeze(sess.run(
softmax_tensor,
{'DecodeJpeg:0': image}
))
arr1 = numpy.squeeze(sess.run(
softmax_tensor,
{'DecodeJpeg/contents:0': jpeg_data}
))
print(numpy.abs(arr0 - arr1).max())
तो अधिकतम निरपेक्ष अंतर 1.27649
है, और सामान्य रूप से सभी तत्वों (अलग विशेष रूप से औसत के बाद से 0.5) - arr0
और arr1
खुद को का मान 0 के बीच स्थित है।
मैं यह भी उम्मीद करता हूं कि 'DecodeJpeg:0'
को एक जेपीईजी-स्ट्रिंग की आवश्यकता है, न कि एक संख्यात्मक सरणी, नाम में 'जेपीईजी' क्यों है। @john: क्या आप बता सकते हैं कि सुनिश्चित करें कि आप अपनी टिप्पणी के बारे में हैं?
तो मुझे लगता है कि मुझे यकीन है कि क्या, क्या है के रूप में मैं एक प्रशिक्षित तंत्रिका नेटवर्क नियतात्मक होने की अपेक्षा करेंगे (लेकिन ज्यादा से ज्यादा अराजक) नहीं हूँ।
रबर बतख: जब "छविनेट पर प्रशिक्षित सीएनएन" पर Googleिंग करते समय, मुझे यह पता चला: http://www.vlfeat.org/matconvnet/pretrained/ – Herbert
मैं इस लैपटॉप को अपने लैपटॉप पर संकलित और चला सकता हूं - और इसका उपयोग करें छवियों github पहचान/वर्गीकृत करने के लिए वेब कैमरा।com/sermanet/overFeat –