runtime-error - 执行 torch.matmul() 时出现 RuntimeError
问题描述
我正在尝试实现注意力模型,但无法执行 matmul
torch.matmul(att, v)
att 和 v 的形状为:
att shape:torch.Size([20, 3, 128, 128])
v shape:torch.Size([20, 3, 128, 100])
我收到这样的错误:
RuntimeError:预期张量在维度 1 处的大小为 100,但参数 #2 'batch2' 的大小为 128(同时检查 bmm 的参数)
我还尝试通过 torch.randn 生成两个具有相同形状的张量并重复相同的操作并且没有出现错误。我不知道是什么导致了这样的错误
解决方案
也许内存和形状对齐的差异。如果您使用视图方法,您可以根据需要处理张量形状。但是内存上的数组没有被重塑。这有时会导致不清楚的问题。所以 contiguous() 或 reshape() 可以帮助你。
参考: https : //pytorch.org/docs/master/tensors.html?highlight=view#torch.Tensor.view pytorch 中的 reshape 和 view 有什么区别?
推荐阅读
- python - 无法在 django 管理面板创建用户
- json - 使用 Power BI / Power Query / M 代码将 JSON 响应列表数组解析为列而不是行
- javascript - Vue - 如何使用道具将数据从 main.js 传递到 *.vue
- sql - 如何使用 SQL 聚合 jsonb 数组中的值
- c - 为什么在 C 中重新声明函数是合法的?
- android - com.android.build.gradle.internal.res.ResourceCompilerRunnable
- php - 将json保存到数据库mysql时出错?
- node.js - Vite 插件:了解 NodeJS 并导出默认值
- javascript - 如何从 API 检索数据并将其转置到网页?
- javascript - 当窗口大小低于最小断点(576px)时,React 组件中的引导卡在每个卡之间有很大的空间