Saya memiliki parameter tensor obor 4 dimensi yang didefinisikan seperti ini:
nn.parameter.Parameter(data=torch.Tensor((13,13,13,13)), requires_grad=True)
dan empat tensor dengan redup (batch_size,13) (atau satu tensor dengan redup (batch_size,4,13)). Saya ingin mendapatkan tensor dengan dims (batch_size) sama dengan rumus di akhir gambar ini : [EDIT: Saya membuat kesalahan pada gambar pertama, saya sudah memperbaikinya] Saya telah melihat fungsi tensordot di dokumentasi obor, namun saya tidak dapat membuatnya berfungsi sendiri.
i
tetapi ini berbeda dari variabel bisu tempat Anda melakukan penjumlahan terluar, bukan? - person trialNerror   schedule 20.01.2021result = (A[None, :, :, :, :] * X[:, :, None, None, None] * Y[:, None, :, None, None] * Z[:, None, None, :, None] * T[:, None, None, None, :]).flatten(1).sum(dim=1)
yang Anda inginkan? Jika demikian saya dapat memposting jawabannya dengan penjelasan. - person jodag   schedule 20.01.2021None
hanya digunakan untuk memasukkan dimensi kesatuan seperti di numpy. Ini adalah siaran yang setara dengan ekspresi einsum dari jawaban Shai. - person jodag   schedule 20.01.2021