मेरे पास एसवीएम-लाइट प्रारूप में स्पैस टीएफ-आईडीएफ फीचर मैट्रिक्स से निर्मित एक सिसी स्पैस सीएसआर मैट्रिक्स है। सुविधाओं की संख्या बहुत बड़ी है और यह स्पैस है इसलिए मुझे स्पैरसेन्सर का उपयोग करना है या नहीं, यह बहुत धीमी है।सेंसर स्पैस सीएसआर मैट्रिक्स टेंसरफ्लो स्पैरसेन्सर - मिनी-बैच ग्रेडियेंट वंश
उदाहरण के लिए, सुविधाओं की संख्या 5 है, और एक नमूना फ़ाइल इस तरह दिखना कर सकते हैं:
0 4:1
1 1:3 3:4
0 5:1
0 2:1
पार्स करने के बाद, प्रशिक्षण सेट इस तरह दिखता है:
trainX = <scipy CSR matrix>
trainY = np.array([0,1,00])
मैं दो महत्वपूर्ण है प्रश्न:
1) मैं इसे स्पैरसेन्सर (sp_ids, sp_weights) में कुशलता से कैसे परिवर्तित करता हूं ताकि मैं लुकअप का उपयोग करके तेज़ गुणा (डब्ल्यूएक्स) कर सकूं: https://www.tensorflow.org/versions/master/api_docs/python/nn.html#embedding_lookup_sparse
2) मैं प्रत्येक युग में डेटासेट को यादृच्छिक कैसे बना सकता हूं और sp_ids, sp_weights को फिर से समझ सकता हूं ताकि मैं मिनी-बैच ग्रेडेंट वंश के लिए फ़ीड (feed_dict) को खिला सकूं।
लॉजिकल रिग्रेशन जैसे साधारण मॉडल पर उदाहरण कोड की बहुत सराहना की जाएगी। ग्राफ इस तरह होगा:
# GRAPH
mul = tf.nn.embedding_lookup_sparse(W, X_sp_ids, X_sp_weights, combiner = "sum") # W.X
z = tf.add(mul, b) # W.X + b
cost_op = tf.reduce_sum(tf.nn.sigmoid_cross_entropy_with_logits(z, y_true)) # this already has built in sigmoid apply
train_op = tf.train.GradientDescentOptimizer(0.05).minimize(cost_op) # construct optimizer
predict_op = tf.nn.sigmoid(z) # sig(W.X + b)
क्या आपने कभी इसके लिए एक और अधिक कुशल समाधान खोजा है? – Alt