matrix - 如何在keras lambda层中进行矩阵乘法
问题描述
我必须将矩阵乘法计算为 Keras 层。
t1 的形状是 (None, 4, 32, 32),而 t2 的形状是 (None, 4, 32, 6)。
它适用于 tf.matmul(t1, t2) 或 K.batch_dot(t1, t2) 以获得形状为 (None, 4, 32, 6) 的结果。
但是,我未能使用下面的代码来替换 tf.matmul 或 K.batch_dot 进行乘法:
prod=Lambda(lambda x: K.batch_dot(x[0], x[1]))([t1, t2]),带有 ValueError:
ValueError:尺寸必须相等,但对于输入形状为 [?,4,32,4,32]、[?,4,32,6,1] 的 blabla(操作:'BatchMatMul'),尺寸必须是 32 和 6。
我对尺寸的变化感到很困惑。有什么解决方案可以解决这个问题吗?提前谢谢了!
解决方案
推荐阅读
- linux - Emacs 在 su 到 root 后加载用户配置文件
- c# - 模拟方法执行真实代码而不是模拟,为什么?
- mysql - MySQL 服务器已消失,无法从 Rails 应用程序连接到本地 MySQL 服务器
- lightbox - Bootstrap ekkolightbox 不支持 tif/tiff 图像?
- java - 如何在 Jersey 客户端中仅使用 WebTarget 设置基本身份验证
- c++ - C++ 类运算符重载不适用于 std::sort
- android - Android : 支持应用内更新结果被取消
- natural-language-processing - 为什么形容词“JJ”的词性标签?
- dictionary - 没有为模式 WASB 获取文件系统。Hdinsight Map Reduce
- ios - Git 相对路径问题 - 在路径中找不到 lintable 文件