我如何做一个模仿'keepdims'的einsum?

Calvin_xc1

python问题:我在一对3d数组上执行了np.einsum操作:

return np.einsum('ijk, ijk -> ik', input_array, self._beta_array)

我遇到的问题是结果是2d;该操作折叠了“ j”维。我想做的是让它保留'j'维度,类似于np.sum函数中'keepdims'的工作方式。

我可以将结果包装在np.expand_dims中,但对我而言似乎效率不高。我宁愿找到一种方法来调整einsum来输出我想要的东西。

这可能吗?

埃里克

我可以将结果包装在中np.expand_dims,但对我而言似乎效率不高

在numpy中添加维度最糟糕的是O(ndim),因此基本上是免费的。至关重要的是,实际数据没有被触及-所有发生的是.strides.shape元组各获得一个额外的元素

现在无法使用einsum直接获取您想要的东西。

ijk, ijk -> i1k如果您确实认为numpy可以提高可读性,则可以尝试对numpy进行拉取请求以支持

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章