在TensorFlow中将矢量转换为Toeplitz矩阵的最简单方法是什么?

时间:2017-02-16 14:20:21

标签: python tensorflow

我想使用像这样的Tensorflow操作将矢量转换为对称的Toeplitz矩阵:

a = tf.placeholder(tf.float32, shape=[vector_size])
A = some_tensorflow_operation(a)

其中A的形状是[vector_size,vector_size]。两个变量之间的关系如下。

a = [a1,a2,a3]
A = [[a1,a2,a3],[a2,a1,a2],[a3,a2,a1]]

最简单的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果vector_size=3

>>> a = tf.placeholder(tf.float32, shape=[vector_size])
>>> A = [[a[0],a[1],a[2]],[a[1],a[0],a[1]],[a[2],a[1],a[0]]]
>>> sess = tf.Session()
>>> sess.run(A, {a: [1, 2, 3]})
[[1.0, 2.0, 3.0], [2.0, 1.0, 2.0], [3.0, 2.0, 1.0]]