2016-02-26 14 views
10

मैं tensorflow को CSV फ़ाइलों से डेटा पढ़ने की कोशिश कर रहा हूँ,टेन्सफोर्लो में डेटा कैसे पढ़ा जाए?

https://www.tensorflow.org/versions/r0.7/how_tos/reading_data/index.html#filenames-shuffling-and-epoch-limits

आधिकारिक दस्तावेज में नमूना कोड इस तरह है:

col1, col2, col3, col4, col5 = tf.decode_csv(value, record_defaults=record_defaults) 

फ़ाइल को पढ़ने के लिए, मैं पता करने की जरूरत फ़ाइल में कितने कॉलम और लाइनें पहले से हैं, और यदि 1000 कॉलम हैं, तो मुझे 1000 चर जैसे col1, col2, col3, col4, col5,..., col1000 , परिभाषित करने की आवश्यकता है, यह डेटा पढ़ने के लिए एक प्रभावी तरीका नहीं दिखता है।

मेरे सवालों का

  1. Tensorflow में CSV फ़ाइलों को पढ़ने के लिए सबसे अच्छा तरीका क्या है?

  2. क्या टेन्सफोर्लो में डेटाबेस (जैसे mongoDB) पढ़ने का कोई तरीका है?

उत्तर

5
  1. आप निश्चित रूप से col1, col2, col1000 को परिभाषित करने की जरूरत नहीं है ...

    आम तौर पर उपयोगी है, तो आप इस तरह बातें कर सकते हैं:

    
    columns = tf.decode_csv(value, record_defaults=record_defaults) 
    features = tf.pack(columns) 
    do_whatever_you_want_to_play_with_features(features) 
    
  2. मुझे मोंगोडीबी से सीधे डेटा पढ़ने के लिए किसी भी ऑफ-द-शेल्फ तरीके से नहीं पता है। हो सकता है कि आप टोंसॉर्फ़्लो का समर्थन करने वाले प्रारूप में मोंगोडीबी से डेटा को कन्वर्ट करने के लिए केवल एक छोटी लिपि लिख सकें, मैं बाइनरी फॉर्म TFRecord की सिफारिश करूंगा, जो सीएसवी रिकॉर्ड से पढ़ने के लिए बहुत तेज़ है। This इस विषय के बारे में एक अच्छा ब्लॉग पोस्ट है। या आप अपने द्वारा एक अनुकूलित डेटा रीडर को कार्यान्वित करना चुन सकते हैं, यहां the official doc देखें।

2
def func() 
    return 1,2,3,4 

b = func() 

print b #(1, 2, 3, 4) 

print [num for num in b] # [1, 2, 3, 4] 

हाय इसके साथ tensorflow अपनी सरल अजगर 1000 वैरिएबल निर्धारित की जरूरत नहीं है कोई लेना देना नहीं। tf.decode_csv एक tuple देता है।

डेटाबेस हैंडलिंग पर कोई विचार नहीं, मुझे लगता है कि आप पाइथन का उपयोग कर सकते हैं और डेटा को टेंसफोर्लो में सरणी के रूप में इनपुट कर सकते हैं।

आशा इस

1

बेशक आप मोन्दो से बैन्सफोर्लो को खिलाने के लिए सीधे बैच यादृच्छिक सॉर्ट प्रशिक्षित डेटा को पढ़ने के लिए कार्यान्वित कर सकते हैं। नीचे मेरा तरीका है:

 for step in range(self.steps): 


      pageNum=1; 
      while(True): 
       trainArray,trainLabelsArray = loadBatchTrainDataFromMongo(****) 
       if len(trainArray)==0: 
        logging.info("train datas consume up!") 
        break; 
       logging.info("started to train") 
       sess.run([model.train_op], 
         feed_dict={self.input: trainArray, 
            self.output: np.asarray(trainLabelsArray), 
            self.keep_prob: params['dropout_rate']}) 

       pageNum=pageNum+1; 

और आप भी इस तरह के preprocess तरह MongoDB में डेटा, प्रशिक्षित की जरूरत है: MongoDB एक यादृच्छिक तरह मूल्य में प्रत्येक प्रशिक्षित डेटा असाइन ...

संबंधित मुद्दे