首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在tensorflow中执行具有不同秩和外维的张量的三对角矩阵的乘法

如何在tensorflow中执行具有不同秩和外维的张量的三对角矩阵的乘法
EN

Stack Overflow用户
提问于 2020-05-13 12:05:48
回答 1查看 55关注 0票数 0

下面的代码(修改后的tensorflow示例)产生错误“所有输入张量必须具有相同的等级。”tf.linalg.LinearOperatorTridiag的多项运算也给出了类似的误差。我需要在Keras层中将输入乘以三对角矩阵,由于该层输入中的额外批量维度,张量的等级会有所不同。有什么已知的实际解决方案吗?

代码语言:javascript
复制
import tensorflow as tf

superdiag = tf.constant([-1, -1, 0], dtype=tf.float64)
maindiag = tf.constant([2, 2, 2], dtype=tf.float64)
subdiag = tf.constant([0, -1, -1], dtype=tf.float64)
diagonals = [superdiag, maindiag, subdiag]
rhs = tf.constant([[[1, 1], [1, 1], [1, 1]]], dtype=tf.float64)
x = tf.linalg.tridiagonal_matmul(diagonals, rhs, diagonals_format='sequence')
EN

回答 1

Stack Overflow用户

发布于 2020-05-13 15:24:58

你必须扩展第一个维度

代码语言:javascript
复制
superdiag = tf.constant([-1, -1, 0], dtype=tf.float64)
maindiag = tf.constant([2, 2, 2], dtype=tf.float64)
subdiag = tf.constant([0, -1, -1], dtype=tf.float64)
diagonals = [tf.expand_dims(superdiag,0), tf.expand_dims(maindiag,0), tf.expand_dims(subdiag,0)]
rhs = tf.constant([[[1, 1], [1, 1], [1, 1]]], dtype=tf.float64)
x = tf.linalg.tridiagonal_matmul(diagonals, rhs, diagonals_format='sequence')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61766244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档