2015-11-22 11 views
9

टेंसफोर्लो में, प्रवेश और मैट्रिक्स गुणा के लिए अच्छे कार्य हैं, लेकिन दस्तावेज़ों को देखने के बाद, मुझे बाहरी उत्पाद दो टेंसर के लिए कोई आंतरिक कार्य नहीं मिल रहा है, यानी, एक बड़ा टेंसर बनाना छोटे tensors (numpy.outer) की तरह के तत्वों के सभी संभव उत्पादों के द्वारा:tensorflow में बाहरी उत्पाद

v_{i,j} = x_i*h_j 

या

M_{ij,kl} = A_{ij}*B_{kl} 

इस तरह के एक समारोह है tensorflow करता है?

उत्तर

15

हां, आप tensorflow के प्रसारण अर्थशास्त्र का लाभ उठाकर ऐसा कर सकते हैं। अपने आप के आकार 1xN के पहले आकार का आकार लें, और दूसरे के आकार के एमएक्स 1 का आकार लें, और जब आप उन्हें गुणा करते हैं तो आपको सभी परिणामों के एमएक्सएन पर प्रसारण मिलेगा।

(आप चारों ओर numpy में एक ही बात के साथ एक सरल संदर्भ में यह कैसे बर्ताव करता है देखने के लिए, खेल सकते हैं Btw:

a = np.array([1, 2, 3, 4, 5]).reshape([5,1]) 
b = np.array([6, 7, 8, 9, 10]).reshape([1,5]) 
a*b 

वास्तव में किस प्रकार आप tensorflow में ऐसा एक सा अक्ष जिस पर आप करना चाहते हैं निर्भर करता है का उपयोग करें और क्या अर्थ विज्ञान आप चाहते हैं जिसके परिणामस्वरूप गुणा के लिए है, लेकिन सामान्य विचार लागू होता है।

1

इस पर मामला किसी और stumbles में, tensorflow डॉक्स के अनुसार आप दो tensors a के बाहरी उत्पाद की गणना करने के tf.einsum() समारोह का उपयोग कर सकते हैं और b:

# Outer product 
>>> einsum('i,j->ij', u, v) # output[i,j] = u[i]*v[j]