मेरे पास आयामों का एक टेंसर M [NxQxD] और सूचकांकों का एक 1d टेंसर idx (आकार N) है। मैं कुशलतापूर्वक mask आयामों का [NxQxD] बनाना चाहता हूं जैसे कि mask[i,j,k] = 1 iff j <= idx[i], यानी मैं केवल idx[i] पहले आयामों को Q से बाहर रखना चाहता हूं। प्रत्येक पंक्ति i के लिए M का दूसरा आयाम (मंद = 1)।

धन्यवाद!

0
user1767774 4 सितंबर 2019, 15:28

1 उत्तर

यह पता चला है कि यह एक प्रसारण चाल के माध्यम से किया जा सकता है:

mask_2d = torch.arange(Q)[None, :] < idx[:, None] #(N,Q)
mask_3d = mask[..., None] #(N,Q,1)
masked = mask.float() * data
1
user1767774 4 सितंबर 2019, 17:02