numpy और tensorflow में छोटे आयाम का आकार मैट्रिक्स (या टेंसर) को जोड़ना संभव है यदि छोटे मैट्रिक्स का आकार बड़ा मैट्रिक्स का प्रत्यय है। यह एक उदाहरण है:विभिन्न आयामों के साथ matrices जोड़ना
x = np.ndarray(shape=(10, 7, 5), dtype = float)
y = np.ndarray(shape=(7, 5), dtype = float)
इन दो मैट्रिक्स आपरेशन x+y
के लिए है एक शॉर्टकट के लिए:
for a in range(10):
for b in range(7):
for b in range(5):
result[a,b,c] = x[a,b,c] + y[b,c]
मेरे मामले में हालांकि मैं आकार (10,7,5)
और (10,5)
की मैट्रिक्स है और इसी तरह मैं प्रदर्शन करने के लिए चाहते हैं इस मामले तथापिमें
for a in range(10):
for b in range(7):
for b in range(5):
result[a,b,c] = x[a,b,c] + y[a,c]
^
: +
आपरेशन समान तर्क का प्रयोगऑपरेशन विफल रहता है क्योंकि न तो numpy और न ही tensorflow समझता है कि मैं क्या करना चाहता हूँ। क्या कोई तरीका है कि मैं इस ऑपरेशन को कुशलतापूर्वक कर सकता हूं (बिना पाइथन लूप लिखने के)?
अब तक मैं लगा मैं इस तरह einsum का उपयोग कर आकार (10,7,5)
की एक अस्थायी मैट्रिक्स z
परिचय हो सकता है कि में:
z = np.einsum('ij,k->ikj', y, np.ones(7))
x + z
लेकिन यह एक स्पष्ट तीन आयामी मैट्रिक्स (या टेन्सर) और यदि संभव हो तो मैं बनाता है इससे बचना पसंद करेंगे।
में पाया जा सकता यदि आप किसी भी संयोग से पता निर्माण tensorflow इसी करते हैं? – Kuba
@ क्यूबा आज़माएं: 'x + tf.expand_dims (y, 1)'? पोस्ट में जोड़ा गया। – Divakar
'tf.expand_dims' काम करता है! मैंने जवाब स्वीकार कर लिया है – Kuba