python - Tensorflow 将 3D 张量乘以 2D 矩阵
问题描述
我正在尝试将 3D 张量乘以 2D 矩阵,但具有一个未知维度。我在这里检查了所有关于此的帖子,但没有我找不到我想要的东西。
我有这些参数:
T - 形状 (M,N)
L - 形状 (?,M,M)
F - 形状 (?, N)
我想用输出形状(?,M)做乘法 L * T * F。
我试过扩大尺寸等。
不幸的是,我总是丢失 ? 维。
感谢您的任何建议。
解决方案
你可以这样实现。
L --> [?, M, M]
T --> [M, N]
tensordot(L,T) axes [[2], [0]] --> [?,M, N]
F --> [?, N] --> expand axis --> [?, N, 1]
matmul [?, M, N], [?, N, 1] --> [?, M, 1] --> squeeze --> [?, M]
放在一起:
tf.squeeze(tf.matmul(tf.tensordot(L,T, axes=[[2],[0]]),F[...,None]))
推荐阅读
- android - 如何让 React Native 应用看起来像其他 Android 应用?
- javascript - 在 JavaScript 中访问目录中的文件名/url
- sql - 使用 sparksql 和 spark dataframe 我们如何根据一行中的最小值找到 COLUMN NAME
- swift - 重复数组的特定项
- cypress - Npm cypress:在 foreach 中使用固定装置?
- java - 在 Firestore Java admin SDK 中网络断开和重新连接时未收到文档更新
- java - java类文件中的“此方法后预期的变量声明符”错误
- java - 将字段名称作为参数传递给Java中同一类中的方法
- vue.js - 找不到模块“vuetify-loader/lib/plugin”
- c# - 将文件从一个 Azure 存储帐户复制到另一个