python - 3,4轴pytorch中的矩阵乘法
问题描述
我有两个形状张量a(16,8,8,64)
和b(64,64)
. 假设,我将 的最后一个维度提取a
到另一个列向量c
中,我想计算matmul(matmul(c.T, b), c)
。我希望在a
. 也就是最终产品应该是成型的(16,8,8,1)
。如何在 pytorch 中实现这一点?
解决方案
可以按如下方式进行:
row_vec = a[:, :, :, None, :].float()
col_vec = a[:, :, :, :, None].float()
b = (b[None, None, None, :, :]).float()
prod = torch.matmul(torch.matmul(row_vec, b), col_vec)
推荐阅读
- sql-server - 带参数的表值函数中的 OPENQUERY
- python - Keras 预训练模型回溯
- css - 反向代理是否影响样式表属性
- java - 如何获取数组中json子项的值
- sql - SQL 问题:如何将字符串/字符变量 yyyy-MM-ddTHH:mm:ssZ 转换为日期格式并计算两个日期之间的差异
- java - 在Java中查找多个正则表达式匹配,禁止不匹配
- angular - 数据网格强制验证消息未正确显示角度
- javascript - 使用 NodeJs 来自另一个文件的动态参数函数
- python - 如何使用 python pysqldf 进行简单查询
- powershell - 使用 SubString/lastIndexOf 重命名项目