मेरे पास एक टेंसर है जो A = 40x1 है।

मुझे इसे 3 अन्य टेंसरों से गुणा करने की आवश्यकता है: B = 40x100x384, C = 40x10, D=40x10

उदाहरण के लिए टेंसर B में, हमें 40 100x384 मैट्रिक्स मिले हैं और मुझे इनमें से प्रत्येक मैट्रिक्स को A से संबंधित तत्व से गुणा करने की आवश्यकता है।

पाइटोरच में ऐसा करने का सबसे अच्छा तरीका क्या है? मान लीजिए कि हमारे पास बी, सी, डी जैसे अधिक मैट्रिक्स हो सकते हैं, वे हमेशा शैली में होंगे 40xKxL या 40xJ

1
sprk 14 मई 2019, 17:48

1 उत्तर

सबसे बढ़िया उत्तर

अगर मैं सही ढंग से समझूं, तो आप प्रत्येक i-वें मैट्रिक्स K x L को A में संबंधित i-वें स्केलर से गुणा करना चाहते हैं।

एक संभावित तरीका है:

(A * B.view(len(A), -1)).view(B.shape)

या आप प्रसारण की शक्ति का उपयोग कर सकते हैं:

A = A.reshape(len(A), 1, 1)
# now A is (40, 1, 1) and you can do
A*B
A*C
A*D

अनिवार्य रूप से A में 1 के बराबर प्रत्येक अनुगामी आयाम को दूसरे मैट्रिक्स से मिलान करने के लिए बढ़ाया और कॉपी किया जाता है।

1
iacolippo 14 मई 2019, 15:13