首页 > 解决方案 > Tensorflow:创建一个以变量为元素的矩阵

问题描述

在 Tensorflow 中,我正在尝试创建以下矩阵:

A = [[a, 0], [0,b]]

我要解决的参数在哪里a以及在哪里。b

这是我到目前为止所拥有的:

a =  tf.Variable((1,), name="a", dtype = tf.float64)
b = tf.Variable((1,), name="b", dtype = tf.float64)
const = tf.constant(0,dtype = tf.float64, shape = (1,))
A0 = tf.transpose(tf.stack([a,const]))
A1 = tf.transpose(tf.stack([const,b]))
A = tf.stack([A0,A1])

然而,A 的形状最终是 (2,1,2),这是错误的(因为 A0 和 B0 都具有形状 (1,2))

有没有一种更简单的方法可以在 Tensorflow 中创建矩阵对象 A,或者有人知道为什么形状会与我正在做的事情混淆吗?

标签: pythontensorflow

解决方案


好吧,您可以创建一个变量向量params = tf.Variable((2,), name="ab"),然后与单位矩阵相乘tf.eye(2)

A = tf.matmul(tf.expand_dims(params,0), tf.eye(2))

推荐阅读