二维张量的元素明智乘法作为pytorch中的神经网络层

element wise multiplication of 2D tensors as layer of neural network in pytorch

我有一个维度为 [Batch_size, n, n] 的 3D torch 张量,它是我的网络层的输出,还有一个大小为 [n, n] 的常量 2D torch 张量.我如何对批量大小执行元素明智的乘法,这应该导致大小为 [Batch_size, n, n] 的火炬张量?

我知道可以使用显式循环来实现此操作,但我对最有效的方法很感兴趣。

一个选项是您可以扩展权重矩阵以具有匹配的批次维度(无需使用任何额外内存)。例如。 twoDTensor.expand((batch_size, n, n)) returns 相同的基础数据,但表示 3D 张量。您可以看到 batch dim 的步幅为零。