python - 是否可以使用 EinsumDense 而不是多个并行的 Dense 层?
问题描述
我有一个 shape 输入(None, 20, 250)
,其中 20 是我的上下文窗口,250 是我的嵌入维度。
我想为上下文窗口中的每个元素应用不同的密集 250 -> 250。以下代码可以正常工作并执行我想要的操作,但不使用 Einsum:
x = tf.unstack(x, axis=1)
x = [layers.Dense(250)(i) for i in x]
x = tf.stack(x, axis=1)
如果我正确理解 Einsum,则以下代码应该完全相同:
einsum = EinsumDense('abc,cbd->abd', output_shape=[20, 250], bias_axes='bd')
x = einsum(x)
EinsumDense 的文档说明这ab,bc->ac
相当于密集层,所以我认为这应该可行。但是,这样做时我得到了截然不同的结果。
我在这里做错了什么?
解决方案
尝试这个!!!
einsum = EinsumDense('abc,cd->abd', output_shape=[20, 250], bias_axes='d')
推荐阅读
- python - 找不到某些请求的价值 .aspx 网站
- git - gitlab-runner:合并后重用工件
- java - 如何使这个删除测试独立?
- css - 展开仅包含具有绝对位置的图像的 div 高度
- spring-cloud - 如何将“Kafka Streams Binder”与“Functional Style”和DI一起使用?
- excel - 退出 Sub 后无法再次运行 sub
- angular - 在本机应用程序上显示图像
- bootstrap-datepicker - ngx-bootstrap datepicker 只有 50% 可见
- node.js - 登录持久化:移动端和桌面端的区别
- python - 排序列表中的元素包含称呼吗?