python - Pytorch如何将除第一维之外的可变大小的张量相乘

标签 python matrix deep-learning pytorch tensor

我有一个张量 A = 40x1 .

我需要将这个张量与其他 3 个张量相乘:B = 40x100x384, C = 40x10, D=40x10 .

例如张量 B ,我们有 40 100x384矩阵,我需要将这些矩阵中的每一个与 A 中的相应元素相乘

在 pytorch 中执行此操作的最佳方法是什么?假设我们可以有更多的矩阵,如 B、C、D,它们将始终采用 40xKxL 样式或40xJ

最佳答案

如果我理解正确的话,您需要将每个第 i 个矩阵 K x L 乘以 A 中相应的第 i 个标量。

一种可能的方法是:

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

或者您可以使用 broadcasting 的力量:

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 的尾随维度都会被拉伸(stretch)和复制以匹配其他矩阵。

关于python - Pytorch如何将除第一维之外的可变大小的张量相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56133218/

相关文章:

python - 在 python 中使用 np.where 函数时如何避免 NaN?

Python从POST请求接收formData,获取流,文件损坏

matlab - 从用于多类分类的标签生成向量矩阵(向量化)

Python:将矩阵转换为半正定

python - GPU 仅被使用 1-5% Tensorflow-gpu 和 Keras

python - 使用多索引将数据帧的一部分与另一部分进行比较

python - 如何让 ibm_db 或 PyDB2 python 模块与 Mac OS X 10.7 Lion 中的 DB2 配合使用?

c++ - 使用 uBLAS 在 C++ 中从 vector 创建矩阵

python - 在 PyTorch 中使用 strict=False 加载修改后的预训练模型

machine-learning - 使用深度学习进行对象检测的数据增强