python - 等价于 einsum 的 N 维张量点
问题描述
我试图通过 einsum 找到将两个具有相同形状的 N 阶张量完全减少为标量的张量点等价物。两个张量都是 3 阶的。我想用 tensordot 来实现它,因为我认为它更容易扩展到更高的维度。这是 einsum 高达 4D 的收缩。
val_1D = np.einsum('i,i', A, B) #1D (aka dot-product)
val_2D = np.einsum('ij,ij', A, B) #2D
val_3D = np.einsum('ijk,ijk', A, B) #3D
val_4D = np.einsum('ijkl,ijkl', A, B) #4D
我需要一种方法来进行第 N 次收缩,而无需将它们全部写在代码中,因为 N 可能非常大,并且有多个数组来执行此操作。据我了解 tensordot 这应该是可能的。
解决方案
推荐阅读
- android - 如何打开文件管理器导航到android中的特定目录?
- apache-spark - 如何在 Apache Spark 2.3 的追加和更新模式下实现自定义接收器?
- delphi - 从网站读取数据
- c++ - Visual Studio 2017 找不到 LMCONS.H
- javascript - 关闭Javascript
- powershell - 如何使powershell缩短“>”之前的长目录
- hdfs - s3distcp 从 S3 复制到 EMR HDFS 数据副本始终在一个节点上
- excel - 读取 Excel 列时数据类型不匹配
- angular - 传单路由机 OSRM 请求过多,状态码为 429
- c# - 使用 C# System..Numerics.Vector
解包/打包位